WordPress : Essayer d’obtenir la propriété de non-objet (catégories WordPress)
J’essaie de corriger une erreur PHP pour ajouter des champs supplémentaires aux catégories WordPress. Mais ça donne cette erreur :
Essayer d’obtenir la propriété de non-objet dans D:MAMPhtdocsclientwp-contentthemescustom_textra_category_fields.php à la ligne 7
Voici mon code :
<?php
add_action('edit_category_form_fields', 'extra_category_fields');
add_action ( 'category_add_form_fields', 'extra_category_fields');//adds
same fields to add new cat
//add extra fields to category edit form callback function
function extra_category_fields($tag) { //check for existing featured ID
$t_id = $tag->term_id;
$cat_meta = get_option( "category_$t_id");
L’erreur est sur la ligne 7 qui a ce code :$t_id = $tag->term_id;
J’apprécierai si quelqu’un me donne une solution à cette erreur php.
PS Je ne me considère pas comme un expert en PHP. J’ai déjà vérifié cet article : Référence – Que signifie cette erreur en PHP mais je n’arrive toujours pas à comprendre une solution directe.
Merci!
Solution n°1 trouvée
Il semble que la variable $tag ne soit pas de type objet, vous ne pouvez donc pas utiliser l’opérateur -> dessus.
Voici un moyen facile de voir ce qu’est $tag.
echo(var_dump($tag))
https://www.w3resource.com/php/function-reference/var_dump.php
Explique ce qu’il fait. Il devrait vider toutes les informations de cette variable sur votre écran.
Solution n°2 trouvée
Il semble que le hook « category_add_form_fields » vous donnera en paramètre une chaîne, c’est-à-dire le slug de votre catégorie. Veuillez consulter ceci : https://github.com/WordPress/WordPress/blob/4981452aba3a9804dd5a4f869e124e38853cb7cc/wp-admin/edit-tags.php#L473
Le crochet « edit_category_form_fields » vous renverra l’objet que vous voulez. De plus, ce crochet semble être obsolète et il serait recommandé d’utiliser « category_edit_form_fields » et cela a pour premier paramètre un objet.
Vous devrez donc vérifier si $tag est un objet ou une chaîne comme ceci :
if( ! is_object( $tag ) ){
$tag = get_category_by_slug( $tag );
}
J’espère que cela t’aides.
0 commentaire