Antworten:
Wenn Sie mit " Blog-Seite " eine statische Seite gemeint haben, die in den Leseeinstellungen als Posts-Seite festgelegt wurde , können Sie dies folgendermaßen überprüfen:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
Wenn Sie
is_home()
und verwendenis_front_page()
, müssen Sie diese in der richtigen Reihenfolge verwenden , um Fehler zu vermeiden und jede Benutzerkonfiguration zu testen.
(Quelle: Bedingte Tags - Die Blog-Seite )
Oder einfach:
if ( !is_front_page() && is_home() ) {
// blog page
}
Oder einfacher (nehme ich an):
if ( is_home() ) {
// blog page
}
Sie können in Ihrer Datei themes functions.php Folgendes verwenden:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
Und fügen Sie dies dann in die Datei ein, die Sie überprüfen:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
Sie können Hooks in Ihrer functions.php-Datei verwenden, um die oben genannten Hooks zu erstellen, damit sie auf jeder Seite angezeigt werden.
Wenn mit "Blog-Seite" eine statische Seite gemeint ist, die als Beitragsseite in der Lesung festgelegt wurde:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS. Diese Lösung funktioniert auch mit der Aktion template_redirect
global $wp_query
), aber auch, weil es die Frage nicht vollständig beantwortet. Es ist eine Funktion, aber das OP hat gefragt, wie das in seiner Header-Datei zu klären ist - daher ist möglicherweise eine genauere Erläuterung erforderlich, was wo abgelegt werden soll. Nochmals herzlich willkommen, ich freue mich, Sie hier zu haben!
Um die Blog-Indexseite zu erhalten , habe ich das gefunden
if ( !is_front_page() && is_home() ) {
// blog page
}
funktioniert bei mir nicht, ich musste die Funktion get_option ('page_for_posts') verwenden, um die Blog-Seite post_id zu identifizieren. Meine Antwort lautet
if ( !is_front_page() && is_home() ){
if ( empty ( $post_id) ) {
global $post;
$post_id = get_option( 'page_for_posts' );
}
//blog page
}
Es gibt eine knifflige Methode.
Angenommen blog
, Sie können diesen Code verwenden, wenn es sich bei Ihrer Blog-Seiten-Slug handelt .
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
Ich denke, es ist sehr einfach, dass ich mich in der gleichen Situation befand und die folgende Technik verwendete, nämlich den Seiten-Slug zu verwenden.
if( is_page('blog') ) {
echo "This is your blog page";
}
Stellen Sie jedoch sicher, dass Sie nicht Homepage ausgewählt haben, um die neuesten Blog-Beiträge anzuzeigen, und dass Sie eine bestimmte Seite für Blogs wie Blogs oder Nachrichten usw. eingerichtet haben.
Sie können verwenden ..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
um zu überprüfen, ob es sich um einen einzelnen Blogeintrag handelt. Oder...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
um zu überprüfen, ob es sich um die Blog-Homepage handelt
Ich benutze diesen Weg
// 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
}
if ( !is_front_page() && is_home() )
, der meiner Meinung nach verwendet werden sollte, ist, wenn Sie ein Thema verteilen, dessen Layout für die Standard-Homepage und die Blog-Seite unterschiedlich ist .