2009-08-04 9 views
3

J'ai essayé d'obtenir de l'aide sur les forums WordPress mais pas de chance. De toute façon, voici ma question ...Comment puis-je obtenir le nom de la catégorie parente dans le modèle WordPress? Puis-je interroger un post par la catégorie parente?

Disons que je crée 10 catégories parentes et 2 sous-catégories à chaque parent. Mon article WordPress appartient à une sous-catégorie d'une catégorie parente particulière

Comment obtenir le nom de la catégorie parente SEULEMENT? Je ne veux pas de noms de sous-catégories? quel code WordPress ferait cela?

Et une question ...

Est-il possible d'interroger après par le parent d'une sous-catégorie en utilisant:

mais au lieu d'entrer cat=1 ou le nom de la catégorie particulière, puis-je faire quelque chose comme:

Ainsi, de cette façon, il insère et interroge automatiquement le post pour le parent d'une sous-catégorie particulière sur laquelle on a cliqué?

+0

Il semble y avoir un texte manquant de votre poste. – JohnK

Répondre

3

Pour obtenir le nom de catégorie parent, utilisez la fonction get_cat_name(), avec le parent comme paramètre, comme suit:

$cat = get_the_category(); 
$parentCatName = get_cat_name($cat[0]->parent); 
+0

C'est ce que je voulais, Merci ça a marché.! –

1

Trouvé cette réponse, qui vous donne le premier limace ancêtre. Il pourrait facilement être modifié pour vous donner le nom.

Got ici: http://nick.boldison.com/wordpress/wordpress-get-top-level-parent-category/

<?php 
// get parent category slug 
$parentCatList = get_category_parents($cat,false,','); 
$parentCatListArray = split(",",$parentCatList); 
$topParentName = $parentCatListArray[0]; 
$sdacReplace = array(" " => "-", "(" => "", ")" => ""); 
$topParent = strtolower(strtr($topParentName,$sdacReplace)); 
?> 

En fait, pour obtenir le nom du parent:

// get parent category slug 
$parentCatList = get_category_parents($cat,false,','); 
$parentCatListArray = split(",",$parentCatList); 
$topParentName = $parentCatListArray[0]; 
3

Toutes ces réponses ont échoué pour moi.

J'ai finalement réussi à afficher le nom de la catégorie supérieure d'un poste comme celui-ci:

 $categories = get_the_category(); 
     $category= ''; 
     foreach($categories as $childcat) { 
      $parentcat = $childcat->category_parent; 
      if($parentcat>0){ 
       $category = get_cat_name($parentcat); 
       continue; 
      } 
     } 
     $category = (strlen($category)>0)? $category : $categories[0]->cat_name; 
Questions connexes