Відповіді:
Якщо під " сторінкою блогу " ви мали на увазі статичну сторінку, встановлену як сторінку публікацій у Налаштуваннях читання , то ви можете це перевірити, зробивши це:
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
}
Ви можете використовувати наступне у вашому файлі themes.php:
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'; } ?>
Ви можете використовувати гачки у вашому файлі function.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() )
, принаймні, на мою думку, - це якщо ви поширюєте тему, яка має різний стиль макета для домашньої сторінки за замовчуванням та сторінки блогу .