cannyboy
  • 0
Новичок

Лучший способ получить серию настраиваемых полей в массиве?

  • 0

У меня есть ряд настраиваемых полей, прикрепленных к определенным страницам. Эти поля называются слайд1, слайд2, сторона3, слайд4, слайд5, слайд6.

Это изображения, которые будут использоваться в качестве слайд-шоу (для этого я использую слайдер jflow — http://net.tutsplus.com/articles/news/using-the-wonderful-jflow-plugin-screencast/ )

(Я не хочу называть их все «слайдами» и помещать их в массив настраиваемых полей, потому что для каждого слайда могут быть подписи, а когда и слайды, и подписи являются массивами настраиваемых полей, порядок может не совпадать)

Теперь иногда будет введено только 3 слайда (от слайда 1 до слайда 3), а иногда и все 6 слайдов (от слайда 1 до слайда 6).

Не очень разбираясь в PHP, мне интересно, как лучше всего вставить эти настраиваемые поля в массив PHP, а затем выполнить итерацию по ним, чтобы распечатать код, который выглядит примерно так, как показано ниже?

<div id="slides">  
 <div><img src="qwerty.jpg">  
</div>  
 <div><img src="foo.jpg">  
 </div> 
 <div><img src="test.jpg">   
 </div>
</div>  

Код для печати, например, изображение слайда1, будет выглядеть примерно так:

<img src="<?php echo wp_get_attachment_url($slide1); ?>">
Share
  1. Этот способ работы со слайдами кажется столь же популярным, сколь и ужасным… 🙂 Недавно я написал что- то очень похожее.

    Основная идея, при необходимости отрегулируйте:

    $id = get_the_ID();
    $slides = array();
    $i = 1;    
    
    foreach( get_post_custom_keys( $id ) as $key )
        if ( false !== strpos( $key, 'slide' ) )
            $slides[$key] = get_post_meta( $id, $key, true);
    
    while( isset( $slides["slide{$i}"] ) ) {
    
        echo '<img src="' . wp_get_attachment_url( $slides["slide{$i}"] ). '" />';
        $i++;
    }
    
    • 0
  2. Готовы ли вы сохранять слайды в виде отдельных постов? Я делал это в прошлом.

    Рассмотрите возможность назначения сообщений для слайд-шоу страницы с настраиваемыми полями. Создайте сообщение для каждого изображения, в котором вы создаете ключ пользовательского поля «slide_show_for» и записываете идентификатор родительской страницы.

    slide_show_for => 29

    Везде, где вы вызываете свое слайд-шоу, используйте это:

    query_posts('meta_key=slide_show_for&meta_value='.$wp->query_vars['p']);
    

    Если вам нужен строгий контроль порядка слайдов, и вы не создаете посты слайдов в том порядке, в котором хотите их отображать, я рекомендую плагин postMash для упорядочивания постов с помощью интерфейса перетаскивания. В этом плагине нет возможности выбирать, какую категорию постов вы хотите заказать. На панели параметров по умолчанию будут отображаться все сообщения. Я взломал код плагина, чтобы жестко указать любую категорию, которую я хочу редактировать. это может быть за пределами вашей зоны комфорта, и, возможно, есть другой способ управления порядком, например, ручное редактирование menu_order каждого сообщения из phpmyadmin.

    • 0

Оставить ответ

You must login to add an answer.