私はWordPressが初めてです。現在のページがヘッダーファイルのコード内のブログページかどうかを確認する方法を探しています。
確認しましたが、方法が見つかりません。 Pls、私を助けてください。
' ブログページ 'で、 閲覧設定 で静的ページを投稿ページに設定したことを意味している場合は、これを行う:
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ファイルでフックを使って上記をフックし、それをすべてのページに表示させることができます。
「ブログページ」とは、Readingで静的ページを投稿ページとして設定したことを意味します。
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS。この解決策は template_redirect actionでも動作します。
ブログのインデックスページ を取得するには、
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
}
私は同じ状況にいたその非常に単純なことを推測し、私は次のテクニックを使用しました。それはページスラッグを使用することです。
if( is_page('blog') ) {
echo "This is your blog page";
}
ただし、最近のブログ投稿を表示するホームページを選択していないこと、およびブログやニュースなどのブログ用に特定のページを設定していることを確認してください。
あなたが使用することができます
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
ホームページ
if(is_home() && is_front_page() || is_front_page()): // static or default hompage
...
endif;
ブログ
if(is_home() && !is_front_page()): // blog
...
endif;