回答:
「ブログページ」によって、閲覧設定で投稿ページとして設定された静的ページを意味する場合、次のようにして確認できます。
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ファイルで次を使用できます。
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ファイルでフックを使用して上記をフックし、すべてのページに表示させることができます。
「ブログページ」によって、閲覧中の投稿ページとして設定された静的ページを意味する場合:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS。このソリューションは、template_redirectアクションでも動作します
global $wp_query
)、質問に完全に答えていないため、少し下に投票されました。これは関数ですが、OPはヘッダーファイルでこれを解決する方法を尋ねました。そのため、何をどこに置くかについてもう少し説明が必要になる場合があります。繰り返しますが、ようこそ、ここにいてくれてうれしいです!
ブログのインデックスページを取得するには、
if ( !is_front_page() && is_home() ) {
// blog page
}
私のために働いていない、私はブログページpost_idを識別するためにget_option( 'page_for_posts')関数を使用しなければならなかった、私の答えは
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
}
使用できます。
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
単一のブログ投稿かどうかを確認します。または...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
ブログのホームページかどうかを確認するには
if ( !is_front_page() && is_home() )
少なくとも私の意見では、使用する1つのユースケースは、デフォルトのホームページとブログページのレイアウトスタイルが異なるテーマを配布する場合です。