Dans mon thème enfant archive.php
, j'ai le code suivant pour afficher le titre de mes pages d'archive:
<?php
the_archive_title( '<h1 class="page-title">', '</h1>' );
?>
Mais cela affiche mes titres comme "Catégorie: Titre de la catégorie " au lieu de simplement le titre sans le préfixe "Catégorie:".
Mon premier instinct était de passer outre à get_the_archive_title()
partir wp-includes/general-template
. Mais d'après ce que j'ai lu, apparemment, je ne suis pas censé modifier les éléments centraux de wordpress, même avec des substitutions d'un thème enfant.
Alors, quel est le meilleur moyen de contrôler le résultat the_archive_title()
?
functions
child-theme
fildred13
la source
la source
Réponses:
Si vous regardez le code source de
get_the_archive_title()
, vous verrez qu'il existe un filtre fourni, appeléget_the_archive_title
, à travers lequel vous pouvez filtrer la sortie de la fonction.Vous pouvez utiliser ce qui suit pour changer la sortie sur une page de catégorie
la source
Archive: Books
(oùBooks
est un type de publication personnalisé). Lasingle_cat_title()
fonction ne renvoie un titre de page que si le type est une catégorie ou une balise . Pouvez-vous modifier votre réponse pour inclure une solution compatible avec tous les types de contenu?La réponse acceptée fonctionne pour supprimer le
Category:
préfixe des titres d'archives de catégorie, mais pas d'autres types de taxonomie ou d'articles. Pour exclure d'autres préfixes, il existe deux options:Reconstruisez le titre pour toutes les variantes utilisées dans la
get_the_archive_title()
fonction d' origine :Ou alors, supprimez tout ce qui ressemble à un préfixe de titre (qui peut modifier les titres contenant un mot suivi du caractère deux-points):
la source
Vous pourriez utiliser
la source
single_cat_title
utilise ensingle_term_title
interne, ce qui fonctionne également sur les taxonomies. Assurez-vous que votre thème n'a pas défini l'un des modèles suivants:taxonomy-book.php
outaxonomy.php
, car ils ont la priorité surarchive.php
. En outre, envisagez de tester l'une des méthodes des autres réponses. Cette réponse est assez ancienne, elle fonctionnait bien au moment où je l'ai postée, mais je ne développe plus pour WordPress.Une autre option est:
Remplacer la marque: avec le texte dont vous souhaitez vous débarrasser.
Il vaut la peine d'examiner la différence entre get_the_archive_title () et the_archive_title () the_archive_title () renvoie un tableau get_the_archive_title () renvoie une chaîne
la source
Ben Gillbanks a une solution intéressante qui gère tous les types de postes et toutes les taxonomies:
la source
Vous pouvez utiliser
post_type_archive_title()
pour obtenir le titre d'une archive sans le texte "Archives:".la source