WordPressで「カスタム投稿タイプ」の作成を簡単にしたいのですが、同じスクリプトを繰り返し、すべてのカスタム投稿タイプ名インスタンスを手動で繰り返し変更するのは面倒です。PHPの動的関数名
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');
これはほとんど罰金であり、唯一の私は動的に順に機能の名前を変更でき、単語「ニュース」を書くために持っていない場合は、標準化することができその前に "$接頭辞"を使用してください。
これは素敵だったかもしれないが、うまく動作しません:
$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:私はグーグルでこれについて多くの "stackoverflowed"をしましたが、私のニーズに合ったワーキングソリューションが見つからず、WordPressエラーメッセージが生成されませんでした。
ありがとうございます。
を使用することで使用できると思いますあなたの意見を理解する)。あなたのスクリプトは、その関数がすでに存在するかどうかをチェックします。そのためには、関数が最初に手動で作成されていなければなりません。私は動的に既存の関数を呼び出すつもりはないが、私がしようとしているのは、その関数を動的に「作成」することである。上のスクリプトでは、簡単にするため、どこからでも「ニュース」という単語を消したいだけですが、最初の指示からスクリプトを削除して機能させています。もし私があなたを得なかったら、私は残念です。 – Baylock
私が正しく理解していれば、 "news_something"や "blog_something"などのような多くの機能を使いたいと思っています。私が提供したコードはinit()で呼び出され、呼び出す関数を選択する必要があります。 複数の場所から同じ関数を呼び出す場合は、PHPで登録する必要があるため、関数を作成して同じ関数を呼び出す必要があると思います。 – hexblot
助けて頂きありがとうございます。上記の私のメッセージを編集して、私の目的をよりよく理解してください。 – Baylock