Ich versuche, die Seiten H1-Header zu verbergen, wenn ein benutzerdefiniertes Feld dies angibt.
Auf einem Seiten-Back-End habe ich ein benutzerdefiniertes Feld hinzugefügt: Name = hide_title Value = true
Ich möchte dann nur die H1 mit einem Filter ausblenden.
Der folgende Code funktioniert nicht, ist aber das Ergebnis meiner Arbeit. Kann jemand eine Lösung für diesen Code vorschlagen oder eine andere Möglichkeit, dies zu erreichen? Ich möchte die Core-Template-Dateien nicht ändern.
Vielen Dank
// Hide H1 Title add_filter('the_title', 'hide_title', 10, 2); function hide_title($title, $id) { global $post; $key = 'hide_title'; $meta = get_post_meta($post->ID, $key, true); if ($meta = 'true') $title['post_title'] = ''; return $title; }
Abhängig von der Art, wie Ihr Theme den Titel verwendet, kann das the_title
im the_title
Filter den Titel h1 verbergen oder nicht. Welches Thema verwendest du?
Der the_title
Filter übergibt zwei Argumente: den Titel (String) und die Post-ID. Daher behandeln Sie den Titel als Array (es sieht so aus, als ob Sie annehmen, $title
ist ein Array von Post-Daten und versucht, $title['post_title']
. Wenn der $title['post_title']
eine leere Zeichenfolge the_title
wenn das benutzerdefinierte Feld “hide_title” ist nicht leer, das folgende würde genügen:
add_filter( 'the_title', 'wpse145940_hide_hidden_title', 10, 2 ); function wpse145940_hide_hidden_title( $title, $postid ) { if ( get_post_meta( $postid, 'hide_title', true ) ) { $title = ''; } return $title; }