同じスクリプトを実行してすべてのカスタム投稿タイプ名インスタンスを手動で何度も変更するのは面倒なので、WordPressでの「カスタム投稿タイプ」の作成を簡素化したいと思います。
CPT名を含む変数を作成し、それを必要な場所で使用することで、非常に簡単に実現できます。このように、私がしなければならないのは、スクリプトの最初で変数を宣言することだけで、残りはそれで処理されます。
唯一の問題は、それを機能させるために、スクリプト内のすべての関数の前にCPT名を付ける必要があることです。関数名で変数を使用することは簡単ではなく、PHPでは推奨されないようです。
では、どうすればこれを解決できますか?
明確にするために、以下の例を示します。
$prefix = 'news';
function news_custom_type_init()
{
global $prefix;
register_post_type($prefix, array(
'labels' => array(
'name' => $prefix,
'singular_label' => $prefix,
'add_new' => 'Add',
...
));
register_taxonomy_for_object_type( 'category', $prefix );
}
add_action('init', $prefix.'_custom_type_init');
これはほとんど問題なく、関数の前に「news」という単語を書く必要がなく、代わりに「$ prefix」を使用するために関数の名前を動的に変更できれば、標準化できます。
これは良かったかもしれませんが、うまくいきません:
$prefix = 'news';
$functionName= $prefix."_custom_type_init";
function $functionName()
{
global $prefix;
register_post_type($prefix, array(
'labels' => array(
'name' => $prefix,
'singular_label' => $prefix,
'add_new' => 'Add',
...
));
register_taxonomy_for_object_type( 'category', $prefix );
}
add_action('init', $prefix.'_custom_type_init');
関数に手動で名前を付ける必要があると、私の試みの本来の目的が少し損なわれます(特に、スクリプトにこのような関数が多数埋め込まれている場合)。
これを行うための最良の方法は何でしょうか?
PS:私はこれについてたくさんググって「スタックオーバーフロー」しましたが、私のニーズに合った実用的なソリューションが見つからず、WordPressエラーメッセージを生成しませんでした。
ありがとうございました。