Wordpressサイト用のPHPクラスを作成しています。次のメソッドは正常に動作しますが、引数を渡して別のメソッド(下のコードを参照)内で呼び出すことで少し抽象化しようとすると、もう動作しません。これが動作していないOOP PHPメソッドが別のメソッド内で呼び出されたときに機能しない
public function user_has_submitted_in_dog_category() {
$args = array(
'post_type' => 'submissions',
'author' => get_current_user_id(),
'tax_query' => array(
array(
'taxonomy' => 'submissions_categories',
'field' => 'slug',
'terms' => 'dog'
)
)
);
$user_posts = get_posts($args);
if(count($user_posts))
return true;
}
:
public function user_has_submitted_in_dog_category() {
$this->user_has_submitted_in_animal_category('dog');
}
public function user_has_submitted_in_animal_category($category) {
$args = array(
'post_type' => 'submissions',
'author' => get_current_user_id(),
'tax_query' => array(
array(
'taxonomy' => 'submissions_categories',
'field' => 'slug',
'terms' => $category
)
)
);
$user_posts = get_posts($args);
if(count($user_posts))
return true;
}
を働いていないことで、私はuser_has_submitted_in_dog_category()
がtrueを返していないことを意味します。コードが印刷さYou have not submitted yet
のブロック
<?php if($submission->user_has_submitted_in_dog_category()) : ?>
<div class="msg">You have already submitted.</div>
<?php else : ?>
<div class="msg">You have not submitted yet.</div>
<?php endif; ?>
が、私は私のカスタム分類dog
に記事を持っている次のように私は、テンプレートファイルにそれを呼び出します。
どのようにして ' – Ice76
がどのようにして、 "動作しない" を定義しない)(' user_has_submitted_in_dog_categoryを呼び出していますか?あなたは何かエラーを起こしていますか?予想される行動と実際に見ている行動は何ですか? (ヒント:おそらく '$ this-> user_has_submitted_in_animal_category( 'dog');の前に' return'を置くといいでしょう。そうしないと、外部関数を呼び出すときに戻り値は渡されません) –
具体的には「うまくいかない」という意味ですか?スローされたエラー?何も起こりません? PHPのエラー出力はデフォルトではオフになっているので、出力が得られない場合は、一時的にオンにするか、オンになっているテスト環境を使用すると便利です。 –