Определите, является ли страница страницей сообщений
5 ответ
- голосов
-
- 2011-04-14
is_home()
проверяет наличие «страницы сообщений»,несмотря на несколько запутанное имя функции.is_home()
checks for the "Posts Page", despite the somewhat confusing function name.-
спасибо,я думал,что проверил их все,но не думаю ...thanks, i thought i checked them all, but i guess not...
- 0
- 2011-04-14
- mike
-
А что насчет `$ wp_query->is_posts_page`?What about `$wp_query->is_posts_page`?
- 3
- 2013-05-15
- Weston Ruter
-
@WestonRuter знает правильный ответ на вопрос.@WestonRuter has the correct answer to the question.
- 0
- 2017-01-19
- The J
-
- 2015-09-13
Wordpress имеет 7 основных типов страниц-шаблонов,которые можно определить таким образом
if ( is_main_query() ) { // Error if ( is_404() ) { ; } // Front page if ( is_front_page() ) { ; } // Archive if ( is_archive() ) { ; } // Comments popup if ( is_comments_popup() ) { ; } // Search if ( is_search() ) { ; } // Singular if ( is_singular() ) { ; } // Home - the blog page if ( is_home() ) { ; } }
is_home сообщает вам,что у вас есть страница блога.
Wordpress comes with 7 primary template page types, which can be determined on this way
if ( is_main_query() ) { // Error if ( is_404() ) { ; } // Front page if ( is_front_page() ) { ; } // Archive if ( is_archive() ) { ; } // Comments popup if ( is_comments_popup() ) { ; } // Search if ( is_search() ) { ; } // Singular if ( is_singular() ) { ; } // Home - the blog page if ( is_home() ) { ; } }
is_home tells to you, that you have the blog page.
-
- 2011-04-14
"Страница сообщений" обычно представляет собой архив:
- сообщения категории
- сообщения тега
- сообщения о дате (год,месяц ...)
- сообщения основного архива
Каждый из них можно проверить с помощью одного из множества условных тегов,например
is_category() is_tag() is_date() is_archive()
И многое другое.Чтобы лучше понять,перейдите к http://codex.wordpress.org/Conditional_Tags"Posts page" is usually an archive of:
- posts of a category
- posts of a tag
- posts of a date ( year, month...)
- posts of main archive
Each one of these can be checked by a one of the many conditional tags like
is_category() is_tag() is_date() is_archive()
And so many more. To get a better understanding head over to the codex http://codex.wordpress.org/Conditional_Tags -
- 2018-01-10
Сначала проверьте блоги,связанные с такими вещами,как автор,тег,тип сообщения
function is_blog () { global $post; $posttype = get_post_type($post ); return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post') ) ? true : false ; }
Теперь проверьте и верните то,что вы хотите получить
function check_post_type(){ $postType; if (is_blog()) { $postType = 'I am post'; } else { $postType = 'I am page'; }; return $postType; }
Используйте его как босс
<?php echo check_post_type();?>
Спасибо Уэсу Босу
First check the blogs related things like author, tag, post type
function is_blog () { global $post; $posttype = get_post_type($post ); return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post') ) ? true : false ; }
Now check and return something which you want to have
function check_post_type(){ $postType; if (is_blog()) { $postType = 'I am post'; } else { $postType = 'I am page'; }; return $postType; }
Use it like Boss
<?php echo check_post_type();?>
Thanks to Wes Bos
-
- 2019-03-10
TL; DR
Случай А . Нет необходимости определять его внутри основного файла шаблона (index.php),потому что это шаблон по умолчанию для него [1] .
Случай Б . Чтобы определить его внутри шаблона страницы (например,page.php),просто проверьте его так:
get_option( 'page_for_posts' ) == get_the_ID()
Подробности
Я буквально покопался в исходном коде [2] ,чтобы узнать,как wordpress проверяет значение. Оказывается,он использует оператор
get_option( 'page_for_posts' )
,чтобы узнать идентификатор сообщения для выбранного значения на странице сообщений .Да,для этой цели не существует официальной функции проверки,аналогичной
is_front_page()
.Если вам известен идентификатор выбранной страницы,вы можете использовать его для проверки.
Ссылки
-
Кодекс WordPress,разработка тем, codex.wordpress.org/Theme_Development
-
Исходный код настроек › настроек чтения ,github.com/WordPress/.../wp-admin/options-reading.php
TL;DR
Case A. There is no need to determine it inside the main template file (index.php) because it is the default template for it[1].
Case B. To determine it inside a page template (ex: page.php), simply check it like so:
get_option( 'page_for_posts' ) == get_the_ID()
Details
I literally went digging the source-code[2] of it just to be able to know how wordpress does the checking of the value. It turns out, it is using the statement
get_option( 'page_for_posts' )
to know the post ID of the selected value of the Posts page.So yeah, for this purpose, there is no such official checker function that is similar to
is_front_page()
.As long as you know the ID of the page that you've selected then you can use it for the checking process.
References
WordPress Codex, Theme Development, codex.wordpress.org/Theme_Development
Source-code of Settings › Reading Settings, github.com/WordPress/.../wp-admin/options-reading.php
На странице Настройки чтения вы можете установить "главную страницу" и "страницу сообщений".Вы можете проверить,
текущая страницаis_front_page();
Есть ли аналогичная функция для "Страницы сообщений"?Я заметил,что
is_page();
не работает для этой специальной страницы.Спасибо