Проверить, является ли текущая страница страницей блога
9 ответ
- голосов
-
- 2014-08-03
Если под страницей блога вы имели в виду статическую страницу ,заданную как страница сообщений в настройках чтения .,то вы можете проверить это следующим образом:
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 }
If by 'blog page' you meant a static page set as posts page in the Reading Settings, then you could check it by doing this:
if ( is_front_page() && is_home() ) { // Default homepage } elseif ( is_front_page() ) { // static homepage } elseif ( is_home() ) { // blog page } else { //everyting else }
When you use
is_home()
andis_front_page()
, you have to use them in the right order to avoid bugs and to test every user configuration.(Source: Conditional Tags - The Blog Page)
Or simply:
if ( !is_front_page() && is_home() ) { // blog page }
Or more simply (I suppose):
if ( is_home() ) { // blog page }
-
Один из вариантов использованияif (! Is_front_page () &&is_home ()),по крайней мере,на мой взгляд,заключается в том,что вы распространяете тему с другим стилем макета для ** домашней страницы по умолчанию ** и ** блога.страница **.One use case to use `if ( !is_front_page() && is_home() )`, at least in my opinion, is if you are distributing a theme that has different layout style for the **default homepage** and the **blog page**.
- 0
- 2014-08-03
- Giraldi
-
Я нахожу,чтоis_front_page () вернетtrue независимо от того,выбран ли архив блога или страница.Нужна проверка.https://codex.wordpress.org/Function_Reference/is_front_pageI'm finding is_front_page() will return true whether or not the blog archive or a page is selected. Need verification. https://codex.wordpress.org/Function_Reference/is_front_page
- 0
- 2017-05-28
- atwellpub
-
- 2014-04-18
В файлеfunctions.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'; } ?>
Вы можете использовать хуки в вашем файлеfunctions.php,чтобы перехватить вышеуказанное,чтобы они появлялись на каждой странице.
You can use the following in your themes functions.php file:
function is_blog () { return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type(); }
And then put this in the file you are checking:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
You can use Hooks in your functions.php file to hook the above, to make that appear on every page.
-
Это отличный ответ,если вы хотите определить,находитесь ли вы на _a_ странице блога,но не обязательно на _the_ странице блога (как на домашней странице блога).См. Ответ @Giraldi.This is a great answer if you want to determine if you're on _a_ blog page, but not neccessarily _the_ blog page (as in the blog home page). See @Giraldi's answer for that.
- 1
- 2016-04-17
- Tim Malone
-
Я ошибочно предположил,чтоis_blog () существует,потому что существуетis_page ().Мне не пришло в голову обратиться к [официальному индексу условных тегов WordPress] (https://codex.wordpress.org/Conditional_Tags#Conditional_Tags_Index).Мне удалось эффективно применить это решение с помощью плагина Widget Logic.I incorrectly assumed is_blog() exists because is_page() exists. It didn't occur to me to consult the [official WordPress Conditional Tags Index](https://codex.wordpress.org/Conditional_Tags#Conditional_Tags_Index). I was able to effectively apply this solution using the Widget Logic plugin.
- 0
- 2019-04-14
- Clarus Dignus
-
- 2016-04-17
Если под «страницей блога» вы имели в виду статическую страницу,заданную как страницу сообщений в разделе «Чтение»:
global $wp_query; if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) { //static blog page }
PS.Это решение также работает с действием template_redirect
If by 'blog page' you meant a static page set as posts page in the Reading:
global $wp_query; if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) { //static blog page }
PS. This solution also works on template_redirect action
-
Привет репинса,добро пожаловать в WPSE :) Спасибо,что добавили свой ответ.Он был немного отклонен,вероятно,из-за синтаксической ошибки в коде (отсутствует точка с запятой после `global $ wp_query`),но также потому,что он не полностью отвечает на вопрос.Это функция,но OP спросил,как с этим справиться,в своем файле заголовка,поэтому ему может потребоваться немного больше объяснений о том,что и куда помещать.И снова добро пожаловать,рад видеть вас здесь!Hi repinsa, welcome to WPSE :) Thanks for adding your answer. It's been voted down a bit, probably because it has a syntax error in the code (it's missing a semicolon after the `global $wp_query`) but also because it doesn't fully answer the question. It's a function, but the OP asked how to work this out in his header file - so it might need a little more explanation about what to put where. Again, welcome, glad to have you here!
- 0
- 2016-04-17
- Tim Malone
-
На самом деле это единственный хороший ответ здесь,должно было получить больше голосов.That's actually the only good answer here, should have had more upvotes.
- 3
- 2017-12-23
- Lacho Tomov
-
- 2018-05-16
Я обнаружил,что для получения индексной страницы блога
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 }
To get the blog index page, I found that
if ( !is_front_page() && is_home() ) { // blog page }
is not working for me, I had to use the get_option('page_for_posts') function to identify the Blog Page post_id, my answer is
if ( !is_front_page() && is_home() ){ if ( empty ( $post_id) ) { global $post; $post_id = get_option( 'page_for_posts' ); } //blog page }
-
- 2013-07-19
Вы можете использовать ..
<?php if ( is_single() ) { ?> Do stuff here <?php } ?>
,чтобы проверить,является ли это отдельной записью в блоге.Или ...
<?php if ( is_home() ) { ?> Do stuff here <?php } ?>
чтобы проверить,является ли это домашней страницей блога
You can use..
<?php if ( is_single() ) { ?> Do stuff here <?php } ?>
to check if it's a single blog post. Or...
<?php if ( is_home() ) { ?> Do stuff here <?php } ?>
to check if it's the blog homepage
-
Не работает,если вы изменили страницу блогаDoesn't work if you've changed the blog page
- 2
- 2014-10-09
- cdmckay
-
Это не дает правильного ответа на OP.Это означает,что вы находитесь на одной записи,а не на «странице блога».This doesn't provide a correct answer to the OP. This indicates you are on a single post, not "the blog page".
- 0
- 2017-12-27
- butlerblog
-
- 2016-10-04
Есть хитрый метод.
Предположим,что если ярлык вашей страницы блога -
blog
,вы можете использовать этот код.global $wp_query; if($wp_query->query['pagename']=='blog'){ // this is blog page }
There is a tricky method.
Suppose if your blog page slug is
blog
, you can use this code.global $wp_query; if($wp_query->query['pagename']=='blog'){ // this is blog page }
-
- 2016-12-17
ГЛАВНАЯ
if(is_home() && is_front_page() || is_front_page()): // static or default hompage ... endif;
БЛОГ
if(is_home() && !is_front_page()): // blog ... endif;
HOMEPAGE
if(is_home() && is_front_page() || is_front_page()): // static or default hompage ... endif;
BLOG
if(is_home() && !is_front_page()): // blog ... endif;
-
- 2017-09-16
Думаю,это очень просто. Я был в такой же ситуации,и я использовал следующую технику,которая заключается в использовании ярлыка страницы.
if( is_page('blog') ) { echo "This is your blog page"; }
Но убедитесь,что вы не выбрали домашнюю страницу для отображения последних сообщений в блоге,и вы установили определенную страницу для блогов,таких как блог или новости и т. д.,просто используйте этот ярлык страницы,и все будет в порядке.
I guess its very simple I was in a same situation and I used the following technique which is to use the page slug.
if( is_page('blog') ) { echo "This is your blog page"; }
But make sure you've not selected homepage to display recent blog posts and you have set a specific page for blogs like blog or news etc, just use that page slug and you'd be fine.
-
- 2015-09-27
Я использую этот способ
// Get body classes as array $body_classes = get_body_class(); // Check if "blog" class exists in the array if(in_array("blog", $body_classes)) { // Do stuff }
I use this way
// Get body classes as array $body_classes = get_body_class(); // Check if "blog" class exists in the array if(in_array("blog", $body_classes)) { // Do stuff }
Я новичок в WordPress.Я ищу способ проверить,является ли текущая страница страницей блога в коде файла заголовка.
Я проверил,но не могу найти способ.Помогите мне,пожалуйста.