Ответы:
Если под « страницей блога » вы подразумевали статическую страницу, заданную как страница постов в настройках чтения , вы можете проверить это, выполнив следующее:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
Когда вы используете
is_home()
иis_front_page()
, вы должны использовать их в правильном порядке, чтобы избежать ошибок и протестировать каждую пользовательскую конфигурацию.
(Источник: Условные теги - Страница блога )
Или просто:
if ( !is_front_page() && is_home() ) {
// blog page
}
Или проще (я полагаю):
if ( is_home() ) {
// blog page
}
Вы можете использовать следующее в вашем файле functions.php themes:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
А затем поместите это в проверяемый файл:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
Вы можете использовать Hooks в вашем файле functions.php, чтобы перехватить все вышеперечисленное, чтобы они появлялись на каждой странице.
Если под «страницей блога» вы подразумевали статическую страницу, установленную как страница постов в Рединге:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS. Это решение также работает с действием template_redirect.
global $wp_query
), а также потому, что он не полностью отвечает на вопрос. Это функция, но ОП спросил, как это решить, в своем заголовочном файле - так что, возможно, понадобится немного больше объяснений о том, что и куда помещать. Снова, добро пожаловать, рад, что вы здесь!
Чтобы получить страницу индекса блога , я обнаружил, что
if ( !is_front_page() && is_home() ) {
// blog page
}
у меня не работает, мне пришлось использовать функцию get_option ('page_for_posts'), чтобы идентифицировать страницу блога post_id, мой ответ:
if ( !is_front_page() && is_home() ){
if ( empty ( $post_id) ) {
global $post;
$post_id = get_option( 'page_for_posts' );
}
//blog page
}
Есть хитрый метод.
Предположим, что если у вас есть страница блога blog
, вы можете использовать этот код.
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
Я думаю, это очень просто, я был в той же ситуации, и я использовал следующую технику, которая заключается в использовании слаг страницы.
if( is_page('blog') ) {
echo "This is your blog page";
}
Но убедитесь, что вы не выбрали домашнюю страницу для отображения последних сообщений в блоге, и вы установили определенную страницу для блогов, таких как блог, новости и т. Д., Просто используйте эту настройку, и все будет в порядке.
Вы можете использовать..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
чтобы проверить, является ли это единственным сообщением в блоге. Или...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
проверить, если это домашняя страница блога
if ( !is_front_page() && is_home() )
, по крайней мере, на мой взгляд, заключается в том, что вы распространяете тему с другим стилем макета для домашней страницы по умолчанию и страницы блога .