Suche
3 Mai 2012

Hallo liebe Leser,

mein Name ist Christopher Schick und ich bin als Web-Entwickler bei neosmart tätig. Meine Schwerpunktgebiete sind PHP- und WordPress-Entwicklung. In den letzten Jahren ist WordPress zu einem großartigen Blog/CMS herangewachsen und wir setzen es sehr gern für die unterschiedlichsten Projekte ein.

Obwohl WordPress von Version zu Version besser wird, muss man als Entwickler schon ab und zu in die Trickkiste greifen um bestimmte Aufgaben zu lösen. Einige dieser WP-Tipps und Tricks werde ich euch ab sofort im Blog zum Besten geben.

Mein erster Post behandelt eines der Probleme die man hat, wenn man mit Custom Post Types (CPT) arbeitet und diese auf seiner Seite ausgeben möchte. Die Seite auf der man seine CPT ausgibt, wird noch von der WordPress CSS richtig als current_page_parent angezeigt. Doch was passiert wenn wir uns einen unserer CPT genauer betrachten. Genau, aus unerklärlichen Gründen wird in der Single-Ansicht eines unserer Posts der Blog markiert, was natürlich sehr unschön und verwirrend ist. Mit folgendem Code-Snippet kann man dieses Problem lösen:

[php]
function neo_change_current_page_parent($menu){
global $post;
if (get_post_type($post) == ‚you-custom-post-type‘){
// Löscht alle current_page_parent Klassen
$menu = str_replace(‚current_page_parent‘, “, $menu);
// Gibt die Klasse der Seite die Ihr haben möchtet
$menu = str_replace(‚menu-item-1662‘, ‚menu-item-1662 current_page_parent‘, $menu);
}
return $menu;
}
add_filter(‚wp_nav_menu‘, ’neo_change_current_page_parent‘, 0);[/php]

Unser Code-Snippet beginnt mit einer Abfrage ob es sich bei dem Post den wir uns gereade betrachten um einen Custom Post Type handelt. Wenn dem so ist, löscht er aus unserer Navigation alle „current_page_parent“ CSS Klassen und fügt sie dem Menüpunkt unserer Wahl hinzu (wie hier in dem Beispiel dem menu-item-1662).

Alles was ihr nun machen müsst, ist dieses Codesnippet in eure functions.php von eurem Theme kopieren und die Daten anpassen.

Autor

neosmart GmbH

Das Team von neosmart berichtet im Blog über aktuelle Projekte und Neuigkeiten aus den Bereichen Webdesign, Webentwicklung und Social Media.