Oxygen umí na stránce zobrazit název archivu i nadpis stránky, bohužel to má jako dvě různé věci (protože to správně dvě různé věci jsou). A pokud máte košatý web na vlastní struktury, je celkem zbytečné pro každou šablonu v Oxygenu řešit, jestli je to stránka nebo archiv. Proč si tedy nenapsat funkci, která pozná, zda je stránka nadpis nebo archiv a zobrazí jen to správné? A vy si pak jen oboje dáte na jedno místo – do hlavičky.
Funkce pro kontrolu archivu
Do snippetů (nebo jinam, kam dáváte kód) si připravíme funkci, která umí zjistit, zda je stránka archivem (výčtem různých typů příspěvků, kategorie nebo jiným). Nezapomeneme ani na vlastní typy příspěvků.
function jk_is_archive(){
if (is_post_type_archive('page')) {return "1";}
if (is_post_type_archive('post')) {return "1";}
if (is_post_type_archive('product')) {return "1";}
if (is_post_type_archive('kurz')) {return "1";}
if (is_tax()) {return "1";}
if (is_post_type_archive()) {return "1";}
if (is_category()) {return "1";}
if (is_tag()) {return "1";}
if (is_author()) {return "1";}
if (is_date()) {return "1";}
return "0";
}
Aby Oxygen spolupracoval, funkce musí vrátit string.
Uplatnění podmínky
Funkci využijeme pro podmínku, abychom v jednom případě zobrazili název archiv a v druhém nadpis stránky.

Např. pro nadpis archivu zapneme podmínku:

Jako typ podmínky vybereme Dynamic data, kam vložíme název funkce výše (parametry nemá).

Pro nadpis pak nastavíme to samé, jen bude hodnota pro podmínku 0.
Hotovo.
Výpis názvu stránky nebo kategorie
Pokud chcete metodu, která rovnou vzátí název stránky/archivu/404/termínu hledání, pak je tady:
function rr_get_page_archive_name(){
if (is_404()) {return "404";}
if (is_search()) {return '"'.get_search_query().'"';}
//all types of archives
if (is_author()) {return get_the_author_meta('display_name');} //author page
if (is_category()) {return get_the_archive_title();} //classic post category archive page
if (is_tag()) {return get_the_archive_title();} //classic post tag archive page
// if (is_post_type_archive()) {return get_the_archive_title();} //post
if (is_tax()) {return get_the_archive_title();} //custom taxonomy archive page
if (is_date()) {return get_the_archive_title();} //date page
//all types of posts
if(get_post_type() == "page"){return get_the_title();}
if(get_post_type() == "post"){return get_the_title();}
if(get_post_type() == "partner"){return get_the_title();}
if(get_post_type() == "attachment"){return get_the_title();}
return get_the_title();
}
Odebrání typu archivu
add_filter( 'get_the_archive_title', 'my_theme_archive_title' );
function my_theme_archive_title( $title ) {
if ( is_category() ) {$title = single_cat_title( '', false );}
elseif ( is_tag() ) {$title = single_tag_title( '', false );}
elseif ( is_author() ) {$title = '<span class="vcard">' . get_the_author() . '</span>';}
elseif ( is_post_type_archive() ) {$title = post_type_archive_title( '', false );}
elseif ( is_tax() ) {$title = single_term_title( '', false );}
elseif ( is_date() ) {$title = single_term_title( '', false );}
return $title;
}
Poslední funkci jsem si půjčila z této stránky.

