WordPress : Vous ne souhaitez pas afficher une catégorie aléatoire. Je veux en exclure quelques-unes ou faire en sorte que la publication n’affiche que la catégorie que je veux

Publié par Jean-Michel le

Je suis coincé dans une situation étrange en ce moment. J’ai donc mes articles wordpress qui appartiennent à plusieurs catégories. par exemple un de mes messages appartient à deux catégories. L’une est la catégorie « Actualités » et l’autre est « Top Bar ». (Je l’utilise pour attribuer des articles à la zone d’en-tête des articles qui récupère ses articles dans la catégorie « Top Bar ».

Le problème auquel je suis confronté est que je souhaite afficher uniquement le nom de la catégorie « Actualités » sur le bloc de publication. En ce moment, il sélectionne au hasard l’un des noms de la catégorie sélectionnée dans la liste et l’affiche. Chaque fois que j’actualise la page, le bloc de publication affiche le nom de l’un des deux. Je veux juste montrer le principal qui s’appelle « Actualités ».

Maintenant, si vous visitez ce lien http://thexpatt.com/news , le titre de la catégorie de messages sera News avec certains d’entre eux montrant les meilleures nouvelles. si vous continuez à rafraîchir la page, le titre changeait constamment. En réalité, tous ces messages ont la catégorie Top News ainsi que la catégorie des nouvelles.

Je joins une capture d’écran pour votre compréhension. J’ai rafraîchi la page plusieurs fois. Remarquez la différence dans les blocs de noms d’affichage des catégories sur les publications.

1ère visite

3ème visite

Mon thème appelant l’une des catégories sélectionnées au hasard. Si oui, comment puis-je faire en sorte qu’il n’appelle que le premier ou comment exclure certaines catégories de la sélection.

ÉDITÉ

Le code que j’ai trouvé dans post.php
indique même un ID aléatoire. comment puis-je changer cela?

$postCategories = get_the_category($post->ID);
$slug = '';
foreach($postCategories as $catSlug) {
    $slug.= $catSlug->slug." ";
}

$categories = wp_get_post_categories($post->ID); 
if(!empty($categories)){
    $catCount = count($categories);
    **//select a random category id**
    $id = rand(0,$catCount-1);
    //cat id
    $catId = $categories[$id];
} else {
    $catId = false;
}

OU AIDE vérifiez si la catégorie principale de levure est sélectionnée et imprimez-la. Le code d’inclusion de la catégorie Yoast ressemble à ceci. (Comme trouvé sur Internet).

    $primary_cat_id=get_post_meta($product>id,'_yoast_wpseo_primary_product_cat',true); 
if($primary_cat_id){    
$product_cat = get_term($primary_cat_id, 'product_cat');    if(isset($product_cat->name)) 
echo $product_cat->name; }

Merci beaucoup.

Solution n°1 trouvée

Je dirais root si le problème est que cette catégorie n’est pas destinée à servir ce type d’objectif fonctionnel. Les catégories sont purement un mécanisme de regroupement , mais elles n’ont aucun concept de ces groupes étant fonctionnellement différenciés .

Pourtant, c’est ce que vous avez déjà en place.

Sans changer la façon dont les catégories sont utilisées, j’ajusterais le modèle d’archive de catégorie au nom de sortie de l’archive actuelle au lieu des catégories de chaque message individuel.

Cela permettrait d’atteindre le cas d’utilisation souhaité (tout sur /newsdit News) et serait moins sujet aux changements au fil du temps que la microgestion de la sortie des catégories de publication.

Solution n°2 trouvée

Vous pouvez utiliser ce code dans votre functions.phppour masquer la catégorie TopBar.

function the_category_filter($thelist,$separator=' ') {
    if(!defined('WP_ADMIN')) {
        //list the category names to exclude
        $exclude = array('TopBar');
        $cats = explode($separator,$thelist);
        $newlist = array();
        foreach($cats as $cat) {
            $catname = trim(strip_tags($cat));
            if(!in_array($catname,$exclude))
                $newlist[] = $cat;
        }
        return implode($separator,$newlist);
    } else
        return $thelist;
}
add_filter('the_category','the_category_filter',10,2);

Solution n°3 trouvée

Orange Ce support a répondu à ma question. Si quelqu’un d’autre est confronté à une situation similaire, utilisez cette méthode pour corriger le correctif de plusieurs catégories du thème Solidus. Merci

Pour configurer une seule catégorie sélectionnée pour le bloc d’actualités, vous devrez trouver dans les fichiers solidus-themeincludeshome-blocks des lignes comme celles-ci :

$categories = get_the_category($my_query->post->ID);
$catCount = count($categories);
//select a random category id
$id = rand(0,$catCount-1);
//cat id
$catId = $categories[$id]->term_id;

et remplacer par des lignes comme

if(is_array($cat)) {
$categories = get_the_category($my_query->post->ID);
$catCount = count($categories);
//select a random category id
$id = rand(0,$catCount-1);
//cat id
$catId = $categories[$id]->term_id;
} else {
$catId = $cat;
}

Alors, que feront ces lignes, au cas où le bloc de la page d’accueil n’aurait qu’une seule catégorie sélectionnée, alors il n’en affichera qu’une seule, mais si vous aurez sélectionné plusieurs catégories, il s’affichera au hasard comme avant. Mais dans le cas où une publication aura plusieurs catégories et que vous en aurez sélectionné une pour le bloc, elle n’en affichera qu’une seule.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *