is_home и is_front_page не работают

30 мая 2015 г., 12:54:38
Просмотры: 32.5K
Голосов: 5

Я пробовал различные условия в секции footer.php, чтобы включить эту функцию только на главной странице, но не на странице блога... однако она появляется на обеих страницах или не появляется вообще... кто-нибудь может объяснить, в чем ошибка?

<?php if( is_home() && is_front_page()   ) : ?>
  <div id="blurbs">
    <ul>
  <?php $the_query = new WP_Query( 'showposts=3' ); ?>

   <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
   <div class="postwrapper">
   <?php the_post_thumbnail(); ?>   <li style="display:inline; font-size: 20px; font-weight:light;"><?php the_title(); ?></li>
<br class="clear">
  <li style=" font-size: 14px; font-weight:light;"><?php the_content(); ?></li>
 </div>
 <?php endwhile;?>
 </ul>
 </div>
 <?php endif; ?>
1
Комментарии

Каков будет вывод var_dump( is_home() ); и var_dump( is_front_page() ); на обеих этих страницах?

birgire birgire
30 мая 2015 г. 13:55:40
Все ответы на вопрос 4
4
17
 <?php if( is_front_page() ) : ?>

is_home относится к странице записей согласно вашим настройкам чтения. is_front_page всегда возвращает true на главной странице.

30 мая 2015 г. 13:57:24
Комментарии

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

Piyush Rawat Piyush Rawat
30 мая 2015 г. 14:06:36

Попробуйте обновленный код и отметьте как принятый ответ, а также поставьте мне голос вверх, если сработает.

Brad Dalton Brad Dalton
30 мая 2015 г. 14:21:02

я уже пробовал без wp_reset_query();, но это не сработало..

Piyush Rawat Piyush Rawat
30 мая 2015 г. 14:25:54

Мое решение касается исключительно использования условных тегов и прекрасно работает у меня, так что проблема на вашей стороне.

Brad Dalton Brad Dalton
31 мая 2015 г. 08:02:23
5
  • На главной странице сайта функция is_front_page() всегда будет возвращать TRUE, независимо от того, отображается ли на главной странице индекс записей блога или статическая страница.
  • На индексе записей блога функция is_home() всегда будет возвращать TRUE, независимо от того, отображается ли индекс записей блога на главной странице сайта или на отдельной странице.

Поэтому лучше использовать следующее условие:

<?php if( 'page' == get_option( 'show_on_front' ) && is_front_page()   ) : ?>
30 мая 2015 г. 13:19:04
Комментарии

не работает... до сих пор обе страницы показывают контент

Piyush Rawat Piyush Rawat
30 мая 2015 г. 13:23:20

<?php wp_reset_query(); ?>... это действительно решило мою проблему... интересно, на что еще способен WP :)

Piyush Rawat Piyush Rawat
30 мая 2015 г. 14:15:50

еще один вопрос.. написано, что не стоит использовать это, пока это абсолютно не необходимо.. может ли это вызвать какие-то ошибки в будущем или другие проблемы

Piyush Rawat Piyush Rawat
30 мая 2015 г. 14:18:29

@PiyushRawat wp_reset_query() неверно. Эта функция используется с query_posts, которую никогда не следует использовать. Правильный способ сбросить WP_Query - это wp_reset_postdata(). Заметка насчет query_posts: она ломает основной запрос и может вызывать проблемы, с которыми вы столкнулись :-)

Pieter Goosen Pieter Goosen
30 мая 2015 г. 14:31:59

@PieterGoosen проверю и с этим вариантом...по крайней мере он работает...спасибо за информацию

Piyush Rawat Piyush Rawat
30 мая 2015 г. 14:34:18
1
-1

wp_reset_query(); решил проблему... возможно, это было связано с циклами, выполнявшимися до этого..

30 мая 2015 г. 14:30:11
Комментарии

Как я уже говорил в другом комментарии, ваша проблема, скорее всего, связана с использованием query_posts. Обратите внимание, что вам следует сбросить WP_Query с помощью wp_reset_postdata()

Pieter Goosen Pieter Goosen
30 мая 2015 г. 14:34:03
1
-1

wp_reset_query(); действительно работает, если вы использовали пользовательские запросы перед проверкой главной страницы

22 июн. 2018 г. 18:55:51
Комментарии

Здравствуйте и спасибо за ваш ответ! Не могли бы вы отредактировать ваш ответ, используя кнопку edit выше, и объяснить, где автор вопроса должен разместить или использовать wp_reset_query() и почему это может помочь в данном сценарии?

Howdy_McGee Howdy_McGee
22 июн. 2018 г. 19:37:00