Intereting Posts

php включает возврат 1 после содержимого

Я использую настраиваемый цикл wordpress, который позволяет мне задавать определенный пост после определенного количества сообщений. Например, первые три сообщения будут оформлены одинаково, следующие 4 сообщения будут отличаться от первых трех и так далее. Это также позволяет мне добавлять разделы <div> между сообщениями.

Вот код кода PHP, который я использую для выполнения этого.

 if (have_posts()) : $count = 0; $paged = ( get_query_var('paged') > 1 ) ? get_query_var('paged') : 1; while (have_posts()) : the_post(); $count++; if ($count <= 3 && $paged === 1) : if ($count === 1) echo '<div class="break"><h2>Break div | first 3 posts</h2></div>'; ?> <div class="first-three"> <?php the_title() ?> </div> <?php elseif (3 < $count && $count <= 7 && $paged === 1) : if ($count === 4) echo '<div class="break"><h2>Break div | next 4 posts</h2></div>'; ?> <div class="next-four"> <?php the_title() ?> </div> <?php elseif (7 < $count && $count <= 13 && $paged === 1) : if ($count === 8) echo '<div class="break"><h2>Break div | next 6 posts</h2></div>'; ?> <div class="next-six"> <?php the_title() ?> </div> <?php elseif (13 < $count && $count <= 20 && $paged === 1) : if ($count === 14) echo '<div class="break"><h2>Break div | next other 6 posts</h2></div>'; ?> <div class="next-other-six"> <?php the_title() ?> </div> <?php else : if ($count === 21) echo '<div class="break"><h2>Break div | last 6 posts</h2></div>'; ?> <div class="last-six"> <?php the_title() ?> </div> <?php endif; endwhile; ?> <div class="nav-previous alignleft"><?php next_posts_link('Older posts'); ?></div> <div class="nav-next alignright"><?php previous_posts_link('Newer posts'); ?></div><?php endif; 

Я не уверен, что вам нужно все это, но я решил разместить его там на всякий случай.

Теперь вот часть, с которой я сталкиваюсь.

  <?php elseif (3 < $count && $count <= 7 && $paged === 1) : if ($count === 4) echo '<div style="clear:both;"></div> <div class="large-6 columns" style="max-width:566px; float:left;"> ', include 'thumbnail-break.php', '</div> '; ?> 

Для этой части я добавил функцию include чтобы поместить путь шаблона между сообщением. Он возвращает путь, но также выводит номер 1 после содержимого.

Как мне избавиться от числа 1.

Вы должны использовать вместо include('thumbnail-break.php'); :

  get_template_part('thumbnail','break'); 

Какой стандартный способ WordPress включает частичные файлы шаблонов из шаблонов страниц.

Это потому, что вы пытаетесь повторить его, пока он возвращает 1 на успех.

Сделайте это вместо этого:

 if ($count === 4) echo '<div style="clear:both;"></div> <div class="large-6 columns" style="max-width:566px; float:left;"> '; include 'thumbnail-break.php'; echo '</div> '; ?> 

Согласно документации на php.net вы найдете эту строку:

Обработка Возвраты: включение возвращает FALSE при сбое и вызывает предупреждение. Успешное включает, если не переопределяется включенным файлом, возвращает 1.

Попробуйте включить следующее:

 include 'thumbnail-break.php', '</div> '; ?> 

Для того, чтобы:

 include_once 'thumbnail-break.php', '</div> '; ?> 

Функция include_once возвращает только истинное утверждение, которое, как я считаю, не будет отображаться в вашем html. Непроверенный, но дайте мне знать, как это происходит. По крайней мере теперь вы знаете, почему излучается 1.