Novinka: Vizuální editor pro éru AI webů. Poslední dílek skládačky, když chcete upravovat web a ne psát e-maily. www.directedit.dev

💬

Dynamický název stránky

Oxygen umí na stránce zobrazit název archivu i nadpis stránky. Ukážeme si, jak oboje vložit do hlavičky dynamicky, abychom na celém webu nemuseli řešit, co kdy zobrazit.

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.

image 2

Např. pro nadpis archivu zapneme podmínku:

image 3

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

image 4

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.

Zdroje

Líbil se vám článek? Pošlete ho dál:

Jitka Klingenbergová

Jitka Klingenbergová

Absolventka ČVUT FIT oboru Informatika | Programátorka | Webová vývojářka, konzultantka a mentorka
tvorime@vyladeny-web.cz

Vaše komentáře

Zanechte první komentář

Zpět k tipům

Pravidelná dávka užitečných tipů až do schránky