Comment définir les paramètres de la fonction get_term_link dans WordPress ?
Problème de paramétrage de la fonction get_term_link dans WordPress
Recommandé : "tutoriel wordpress"
Récemment aidé un Un ami écrit un thème d'entreprise et doit définir un type de publication spécial appelé produit pour le produit. Pour faciliter la gestion, j'ai défini un type de catégorie et un type de balise spéciaux pour le produit. Le type de catégorie est product_cat (le type de catégorie propre à WordPress est). catégorie ).
Pourquoi utiliser get_term_link ? :
Les nouveaux types de catégories ne peuvent pas être utilisés
<?php get_term_link( $term, $taxonomy ); ?>
Pour référence spécifique, WordPress Codex : http://codex.wordpress.org/Function_Reference/get_term_link
Question :
Exemple Exemple :
- La variable de l'ID de catégorie personnalisée est $term $term est modifié en fonction des paramètres d'arrière-plan. Pour faciliter l'explication, il est supposé que le paramètre d'arrière-plan est. $custom_term = 8
- Je souhaite obtenir l'adresse du lien de catégorie avec un identifiant de catégorie personnalisé de $term. Selon les instructions officielles, elle devrait être :
<?php $term = $custom_term; echo get_term_link( $term, 'product_cat'); ?>
Cela semble correct, mais. voici le problème. Cela renverra une erreur :
Erreur fatale capturable : l'objet de la classe WP_Error n'a pas pu être converti en chaîne dans .. C'est vrai, si vous utilisez directement echo $term ; le résultat de sortie est bien 8, ce qui est déprimant...
Mais si vous faites directement ceci :
<?php echo get_term_link( 8, 'product_cat'); ?>
cela fonctionnera à nouveau normalement.
Solution :
En jouant dans le Codex WordPress, j'ai accidentellement vu qu'un ami étranger rencontrait également ce problème, puis il l'a résolu lui-même, et il avait une révélation... Portail 》
Il s'avère qu'il s'agit d'un problème de type de variable. Cette fonction get_term_link est différente des autres fonctions WordPress couramment utilisées. Elle ne convertit pas le type de variable par elle-même. classe de caractères en un entier avant qu'elle puisse fonctionner correctement. Quelle superbe fonction Orz !
Ce qui suit fonctionnera normalement :
(Bolo assis sur le canapé note : intval($term, 10) sera meilleur, sinon il y aura des erreurs lorsque la valeur $term est trop grande Problème de conversion du système, ou utilisez (int)$term)
<?php $term = $custom_term; echo get_term_link( intval($term), 'product_cat'); ?>
Donc, si vous rencontrez une fonction déprimante comme celle-ci à l'avenir, vous devez vous demander s'il s'agit d'un problème avec le type de données variable.
Lancer et jouer (fin).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!