Odpowiedzi:
Jeśli przez „ stronę blogu ” rozumiesz statyczną stronę ustawioną jako stronę postów w Ustawieniach czytania , możesz to sprawdzić, wykonując następujące czynności:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
Kiedy używasz
is_home()
iis_front_page()
, musisz używać ich we właściwej kolejności, aby uniknąć błędów i przetestować każdą konfigurację użytkownika.
(Źródło: Tagi warunkowe - strona blogu )
Lub po prostu:
if ( !is_front_page() && is_home() ) {
// blog page
}
Lub prościej (chyba):
if ( is_home() ) {
// blog page
}
W pliku motywów funkcji.php można użyć następujących elementów:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
A następnie umieść to w sprawdzanym pliku:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
Możesz użyć Haków w pliku functions.php, aby zaczepić powyższe, aby pojawiały się na każdej stronie.
Jeśli przez „stronę blogu” rozumiesz statyczną stronę ustawioną jako stronę postów w czytaniu:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS. To rozwiązanie działa również w przypadku akcji redirect_redagent
global $wp_query
), ale także dlatego, że nie w pełni odpowiada na pytanie. Jest to funkcja, ale OP zapytał, jak to zrobić w swoim pliku nagłówkowym - więc może potrzebować trochę więcej wyjaśnień na temat tego, co gdzie umieścić. Jeszcze raz witamy, cieszę się, że tu jesteś!
Aby znaleźć stronę indeksu blogu , znalazłem to
if ( !is_front_page() && is_home() ) {
// blog page
}
nie działa dla mnie, musiałem użyć funkcji get_option ('page_for_posts'), aby zidentyfikować stronę bloga post_id, moja odpowiedź brzmi:
if ( !is_front_page() && is_home() ){
if ( empty ( $post_id) ) {
global $post;
$post_id = get_option( 'page_for_posts' );
}
//blog page
}
Istnieje trudna metoda.
Załóżmy, że jeśli twoja strona na blogu jest taka blog
, możesz użyć tego kodu.
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
Wydaje mi się, że to bardzo proste, że byłem w tej samej sytuacji i zastosowałem następującą technikę, która polega na użyciu strony.
if( is_page('blog') ) {
echo "This is your blog page";
}
Ale upewnij się, że nie wybrałeś strony głównej do wyświetlania ostatnich postów na blogu i ustawiłeś konkretną stronę dla blogów, takich jak blog, wiadomości itp., Po prostu użyj tej strony i wszystko będzie dobrze.
Możesz użyć..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
aby sprawdzić, czy jest to pojedynczy post na blogu. Lub...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
aby sprawdzić, czy jest to strona główna bloga
Używam w ten sposób
// 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() )
, przynajmniej moim zdaniem, jest dystrybucja motywu, który ma inny styl układu dla domyślnej strony głównej i strony blogu .