WordPress : Essayer d’obtenir la propriété de non-objet (catégories WordPress)

Publié par Jean-Michel le

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.

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 *