2017-09-14 8 views
0

WordPressカテゴリに余分なフィールドを追加する際にPHPエラーを修正しようとしています。しかし、それは、このエラーを与える:ここで
非オブジェクト(WordPressカテゴリ)のプロパティを取得しようとしています

Trying to get property of non-object in D:\MAMP\htdocs\client\wp-content\themes\custom_t\extra_category_fields.php on line 7


は私のコードです:

<?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"); 

エラーはこのコードを持っている7行目にある:$t_id = $tag->term_id;

誰かが与えた場合、私は感謝しなければなら私はこのPHPエラーの解決策です。

P.S.私は自分自身をPHPの専門家とは考えていません。私はすでにこの記事をチェックしました:Reference - What does this error mean in PHPしかし、私はまだ直接解決策を理解できませんでした。

ありがとうございました!

+0

[参照 - PHPでこのエラーが何を意味するのですか?](https://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – ficuscr

+0

エラーが発生しました$ tagはオブジェクトではないので、関数が呼び出されている場所を調べる必要があります。なぜなら、非オブジェクトを空にしている理由を調べるためです。 –

答えて

0

変数$ tagはtypeオブジェクトではないようですので、 - >演算子を使用することはできません。

$タグが何であるかを簡単に確認できます。

エコー(のvar_dump($タグ))

https://www.w3resource.com/php/function-reference/var_dump.php

は、それが何をするかを説明します。その変数のすべての情報を画面にダンプする必要があります。

0

"category_add_form_fields"フックがパラメータとしてあなたのカテゴリのスラッグである文字列を与えるようです。これを見てください:https://github.com/WordPress/WordPress/blob/4981452aba3a9804dd5a4f869e124e38853cb7cc/wp-admin/edit-tags.php#L473

"edit_category_form_fields"フックは、あなたに必要なオブジェクトを返します。また、このフックは非推奨と思われ、 "category_edit_form_fields"を使用することをお勧めします。これは、最初のパラメータに対してオブジェクトを持ちます。

だから、$タグがオブジェクトまたは、このような文字列であるかどうかを確認する必要があります。

if(! is_object($tag)){ 

    $tag = get_category_by_slug($tag); 

} 

・ホープ、このことができます。

関連する問題