it-roy-ru.com

Проверьте, является ли текущая страница страницей блога

Я новичок в WordPress. Я ищу способ проверить, является ли текущая страница страницей блога в коде файла заголовка.

Я проверил, но я не могу найти способ. Помоги мне, пожалуйста.

30
KarSho

Если под ' страницей блога ' вы подразумевали статическая страница, установленную как страница публикаций в Настройки чтения , то вы можете проверить это с помощью делая это:

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
}
40
Giraldi

Вы можете использовать следующее в вашем файле 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, чтобы перехватить все вышеперечисленное, чтобы они появлялись на каждой странице.

17
Vagish

Если под "страницей блога" вы подразумевали статическую страницу, установленную как страница постов в Рединге:

global $wp_query;

if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
    //static blog page
}

PS. Это решение также работает на template_redirect action

9
Sergey Repin

Чтобы получить индексную страницу блога , я обнаружил, что

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
}
2
J.Wang

Есть хитрый метод.

http://example.com/blog

Предположим, если слаг вашей страницы блогаblog, вы можете использовать этот код.

global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
0
Rajilesh Panoli

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

if( is_page('blog') ) {
echo "This is your blog page"; 
}

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

0
Rahman Zeb

Ты можешь использовать

<?php if ( is_single() ) { ?>

Do stuff here

<?php } ?>
0
Xav

ГЛАВНАЯ

if(is_home() && is_front_page() || is_front_page()): // static or default hompage
 ...
endif;

БЛОГ

if(is_home() && !is_front_page()): // blog
 ...
endif;
0
DevWL