• Всем привет.

    Использую плагин ACF вывожу записи в списке

    <li>
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>

    Столкнулся с задачей, когда для каждого 1, 2, 3 элемента в списке нужно добавить еще произвольное поле, которое из бэкэнда добавляется индивидуально для каждого поста, но подчеркну, что только для первых нескольких остальные, чтобы выводились в стандартном режиме.

    Сразу дам пояснение, как это бывает у новичков, возможно я не там копаю — У меня есть посты (фильмы), есть произвольные поля с дилерами по продажи DVD и BlueRay. Для чего нужно чтобы выводились дополнительные поля для 1, 2 и 3 — это чтобы придать выделенные статус партнёру (цена-качество, надёжность и сервис) — т.е. каждому можно было назначить свойство. Остальные партнёры должны выводиться без всяких примечаний.

    Что-то на подобии:

    <li - 1>
    <?php the_field(status_1); ?>
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
    
    <li - 2>
    <?php the_field(status_2); ?>
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
    
    ...
    
    <li>
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>

    В инете только натыкаюсь на статьи о селекторах и псевдокласах…

    Заранее премного благодарен за любые идеи и помощь!

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Привет.

    <li>
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>

    Выводится в цикле?

    Можно так:

    $i = 1;
    <?php while (have_posts()) : the_post(); ?>
    <li>
    <?php if($i <= 3) : ?>
        <?php the_field(status_1); ?>
    <?php endif; ?>
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>
    <?php $i++; ?>
    <?php endwhile; ?>

    Привет @denisco!
    Попытался вставить к себе, не получается…
    Возможно упускаю что-то:

    <?php $posts = get_field('partners');
    			if( $posts ): ?>
    			<ul>
    
    			<?php foreach( $posts as $post): // variable must be called $post (IMPORTANT) ?>
    				<?php setup_postdata($post); ?>
    
    				<li>
    				<?php $i = 1; ?>
    				<?php if($i <= 3) : ?>
    				<?php the_field(status_partner_1); ?>
    				<?php the_field(status_partner_2); ?>
    				<?php the_field(status_partner_3); ?>
    				<?php endif; ?>
    				<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    					<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    				</li>
    
    			<?php $i++; ?>
    			<?php endforeach; ?>
    
    			</ul>
    			<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
    			<?php endif; ?>

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Инициализировать счетчик $i нужно перед началом цикла, иначе он всегда будет равен 1.
    Попробуйте так:

    <?php $posts = get_field('partners');
    if( $posts ): ?>
    	<ul>
    
    	<?php $i = 1; ?>
    	<?php foreach( $posts as $post ): // variable must be called $post (IMPORTANT) ?>
    		<?php setup_postdata($post); ?>
    
    		<li>
    			<?php if($i <= 3) : ?>
    				<?php the_field('status_partner_1'); ?>
    				<?php the_field('status_partner_2'); ?>
    				<?php the_field('status_partner_3'); ?>
    			<?php endif; ?>
    			<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    			<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    		</li>
    
    	<?php $i++; ?>
    	<?php endforeach; ?>
    
    	</ul>
    	<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
    <?php endif; ?>

    Странно, но все равно не выводит:(

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Странно, но все равно не выводит:(

    Что именно? Поля status_partner_1, status_partner_2, status_partner_3 созданы в админке и заполнены для текущих записей?
    Для проверки можно попробовать вывести что-то напрямую:

    <li>
    	<?php if($i <= 3) : ?>
    		<?php echo 'Специальная партнер'; ?>
    	<?php endif; ?>
    	<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?></a><br/>
    	<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>

    Да, не выводит поля, но если ставишь напрямую, то выводит (для первых трех)

    Ничего не понимаю, а почему так может быть?

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Поля status_partner_1, status_partner_2, status_partner_3 созданы в админке и заполнены для текущих записей?

    Да, созданы и заполнены, в том то и дело:(

    Может проблема в том что у меня несколько циклов на странице?

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    А <?php the_permalink(); ?>, <?php the_title(); ?>, <?php the_post_thumbnail( ‘thumbnail’ ); ?> корректно работают?

    Можно попробовать ещё принудительно указать id

    <?php the_field('status_partner_1', $post->ID); ?>

    Ну и для теста, можете попробовать сделать так:

    $fields = get_fields(); // Если не сработает, попробуйте $fields = get_fields($post->ID);
    var_dump( $fields );

    Этот код должен вывести все поля, связанные с текущим постом. Есть в массиве поля, которые Вы выводите?

    НЕ выводит:(
    Да, он выводит, то что для галлереи acf.
    Получается что мы пытаемся вывести вот эти поля в рамках цикла вывода галереи acf…

    И получается что у меня вот этот цикл он выводит партнёров (custom post type) — thumbnail и title от custom post type — partners

    А мы пытаемся вывести поля со статусом из просто post.

    Видимо в этом и проблема…

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Да, он выводит, то что для галлереи acf.

    get_field(‘partners’) — это галерея изображений?

    И получается что у меня вот этот цикл он выводит партнёров (custom post type) — thumbnail и title от custom post type — partners

    А в каком файле весь этот код находится? Если Вам нужен post type partners, тогда нужно использовать get_posts(array(‘post_type’ => ‘partners’)).

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

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    может имеет смысл весь код вставить?

    вставьте на http://pastebin.com/.

    @denisco
    Приветствую, немного ввел в заблуждение поле «partners» — это тип «взаимоотношение», а не «галлерея»

    Вот ссылка:http://pastebin.com/KxSviixG

    Там вставлена часть кода, не а том порядке что вы писали, это я уже играю с вариантами.. Но тем не менее он выглядит так.

    Там так же есть еще одно поле взаимоотношение — «mpartners»

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Тема «Произвольные поля (ACF) вывод для опредленного номера сп» закрыта для новых ответов.