Get_term_by()で奇妙な問題があります。テンプレートの中で使うときはうまくいきますが、functions.phpの中で使うときはfalseを返すだけです。
$term = get_term_by('slug', 'some-term', 'some-taxonomy');
var_dump($term);
なぜこれが起こっているのかについての説明は大歓迎です。
これはおそらく、クエリしようとしている分類法がまだ登録されているために起こります。例えば。 WordPress環境はテーマのfunctions.phpファイルがロードされるときにロードされますが、多くのプラグイン/テーマ/コア関数は後で分類法を登録しません。
本当に高い優先順位番号でinit
にフックしてget_term_by
関数を実行してみてください。そのようです:
<?php
add_action( 'init', 'wpse27111_tester', 999 );
function wpse27111_tester()
{
$term = get_term_by('slug', 'some-term', 'some-taxonomy');
var_dump($term);
}