- Statut : non résolu
- Ce sujet contient 17 réponses, 3 participants et a été mis à jour pour la dernière fois par
Mooks, le il y a 8 années et 8 mois.
-
AuteurMessages
-
17 juin 2016 à 0 h 54 min #564204
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.5.2
– Version de PHP/MySQL : 7.0.7
– Thème utilisé : Headway
– Extensions en place : Plusieurs
– Nom de l’hebergeur : Infomaniak
– Adresse du site : https://www.les-alternatives.comProblème(s) rencontré(s) :
Bonsoir,
Je cherche à afficher les custom taxonomies du post affiché (active post).
J’arrive aisément à afficher la liste complète de la taxonomie avec ce code :
<?php
$terms = get_terms( array(
'taxonomy' => ‘plateforme’,
‘hide_empty’ => false,
) );
if( $terms ): ?>
<ul>
<?php foreach( $terms as $term ): ?>
<p><?php echo $term->name; ?></p>
<?php endforeach; ?>
</ul>
<?php endif; ?>Je n’arrive cependant pas a afficher UNIQUEMENT la taxonomie du post en cours. J’ai essayé avec wp_get_post_terms sans succès
<?php $terms = wp_get_post_terms($post->ID,’plateforme’);
$count = count($terms);
if ( $count > 0 ){
echo « <ul>« ;
foreach ( $terms as $term ) {
echo ‘<li><a href="'.get_term_link($term->slug, ‘plateforme’).' »>’. $term->name . « </a></li>« ;
}
echo « </ul>« ;
}?>Je sèche. Des suggestions?
17 juin 2016 à 1 h 22 min #1059839As tu avancé sur ton problème de compatibilité de plugins ?
http://www.wordpress-fr.net/support/viewtopic.php?pid=632289#p632289Sinon
1- éviter des noms de variable qui pourraient être des variables globales déjà utilisées par WP (par exemple, utilise plutôt $myterms et $myterm
2- fait un var_dump($terms)
3- fait un « else » avec un message d’erreur ^^
et progresse étape par étape en débuguant pour voir ce qui ne va pas.17 juin 2016 à 9 h 25 min #1059840Personnellement j’utilise wp_get_object_terms( $post->ID, ‘slugtaxonomy’ ); et ça marche parfaitement !
Codex : https://codex.wordpress.org/Function_Reference/wp_get_object_terms
17 juin 2016 à 19 h 03 min #1059841Bon, je reviens chercher un peu d’aide parce que je pense avoir fait le tour sans avoir trouvé la réponse à mon problème.
Pour que l’on parte sur des bases saines, voilà ce que j’ai fais aujourd’hui :
1 – Supression des plugins CPT UI et Simple Taxonomy
2 – Création de mon propre plugin « Custom Post Type & Taxonomy », afin de n’être plus dépendant d’un plugin tiers
3 – Création d’un Custom Post de type « logiciel », et un rattachement d’une custom taxonomy « plateforme »Mon problème est donc le même que celui énoncé sur le 1er post :
– Avec get_terms, j’arrive à obtenir la liste complète des éléments de ma taxonomy… mais je suis incapable d’utiliser cette fonction pour n’afficher que les termes « actif » de ma taxonomy pour le post en cours.
– Avec wp_get_object_terms et wp_get_post_terms, rien ne s’affiche. En faisant un var_dump, il me confirme qu’il ne trouve rien (array())
– J’arrive finalement à afficher ce que je désire avec the_terms, mais cela ne me convient pas non plus car le résultat est généré dans un bloc unique. Et malheureusement, mon but est de disposer en bloc-inline chaque élément de ma taxonomy (afin d’y ajouter une police blanche sur background bleu… en gros, ca me permettrait d’avoir de joli petit rectangle de couleur pour chaque élément).
Donc voilà, je suis un peu perdu, et je dois dire que mes yeux et ma tête commence à fatiguer à la vue de toutes mes recherches infructueuses.
Merci d’avance à mes hypothétiques « sauveurs » :p
17 juin 2016 à 20 h 39 min #1059842et que donne le var_dump de $post->ID ?
17 juin 2016 à 22 h 07 min #1059843Lumière de Lune wrote:et que donne le var_dump de $post->ID ?NULL à chaque fois…
17 juin 2016 à 22 h 17 min #1059844Donc ton problème est là 🙂
Tu n’arrives pas à avoir les termes parce que tu n’as pas l’id du post.
Est ce que tu es dans la boucle (the loop) ?
Tentes déjà en codant en dur une id, juste pour vérifier que tu récupères biens les termes
17 juin 2016 à 22 h 30 min #1059845J’utilise le framework Headway, et lorsque tu m’as parlé de loop, il m’avait semblé avoir déjà lu qqc concernant the loop et CPT. Du coup, je suis tombé sur ça : http://headwaythemes.com/docs/article/custom-post-types/
Je vais tenter une de leur 2 manœuvres en essayant de voir si ça résout le problème.
17 juin 2016 à 22 h 48 min #1059837Avant de tenter quoi que ce soit… où se trouve ta fonction ? Le lien que tu indiques n’a RIEN à voir ^^
17 juin 2016 à 22 h 56 min #1059838Ma fonction se trouve dans un bloc « code » sur le frontend du framework Headway
17 juin 2016 à 23 h 06 min #1059846Ben c’est pas au bon endroit…
D’abord parce que on fait un thème enfant, ou tu la mets dans ton plugin.
Ensuite tu l’appelles dans le template de ton thème enfant, là où tu veux afficher.
Typiquement single-slugdemoncustompost.php
Et entre the_post(); et endif;
(grosso modo juste après the_content()
Et surtout tu fais une vraie fonction php …
function list_my_taxo_terms ( $postid = NULL ) {
if ( empty ($postid) ) {
$postid = $post->ID ;
}
$terms = wp_get_post_terms($post->ID,’plateforme’);
$count = count($terms);
if ( $count > 0 ){
$str = « <ul>« ;
foreach ( $terms as $term ) {
$str .= ‘<li><a>slug, ‘plateforme’).' »>’. $term->name . « </a></li>« ;
}
$str .= « </ul>« ;
}
return $str ;
}et dans ton template, tu fais juste echo list_my_taxo_terms() ;
17 juin 2016 à 23 h 26 min #1059847Le thème enfant, il est déjà fait. Mais vu que c’est un framework, il me semble que le fonctionnement est un peu différent d’un site web créé en dur.
Je vais déjà analyser à nouveau la structure du child theme, mais si j’ai bonne mémoire, ce sont des fichiers qui sont vides par défaut et où tu mets le code additionnel désiré.
Va falloir de toute façon que je vois avec le support Headway pour cette opération, qui sont assez réactif en général.
Je met le sujet donc en attente, en attendant d’avoir plus d’information de la part d’Headway sur ce que je désire réalisé… même si je vais mettre les mains dans le cambouis en attendant.
Merci encore pour le temps consacré Lumière de Lune. Je relancerais le post si besoin d’ici 24h. Bonne nuit.
17 juin 2016 à 23 h 30 min #1059848Un framework est un site php comme un autre, simplement avec plus de fonctions. De toute façon, avec wordpress, pas de site web « en dur »
L’avantage de mettre ta fonction dans le plugin c’est que tu ne la perds pas si tu changes de thème
Les fichiers dans un thème enfant sont les copies modifiées des fichiers du même nom du theme parent..17 juin 2016 à 23 h 38 min #1059849Lumière de Lune wrote:Un framework est un site php comme un autre, simplement avec plus de fonctions.Oui sauf que pour Headway, il n’y aucun fichier single.php par exemple 😉 Ce qui fait que dans mon thème enfant, c’est la même chose. Je vais donc pencher pour l’ajout dans le plugin, et en parallèle je vais envoyé une requête au support.
18 juin 2016 à 2 h 10 min #1059850Il n’y a aucune obligation d’avoir un fichier single.php même dans un site wordpress « sans framework »
Tu peux très bien « tout’ faire avec index.php et des conditions (if ( is_singular() { par exemple, qui remplacent l’appel aux différents templates.Si tu ajoutes un fichier single-moncustompostype.php dans ton thème enfant, il sera utilisé
Codex, hiérarchie des fichiers de modèles…
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.