Custom Field Templateで投稿とカスタム投稿を紐付ける

「Custom Field Template」で投稿とカスタム投稿を紐付けることができます。

たとえば「template_text」という名前のカスタム投稿のエントリーを投稿と紐付ける場合、新規投稿画面で「template_text」のエントリータイトルを呼び出せるようにすれば、より自由な投稿画面を作ることができます。

方法

ここでは紐付けるカスタム投稿の「post_type」の「template_text」を設定したと仮定して説明します。

(1)カスタム投稿を設定する

(2)カスタムフィールドテンプレートを設定する

カスタムフィールドテンプレートの設定画面を開き、「カスタムフィールドテンプレートオプション」の「テンプレートコンテンツ:」を以下のように設定して保存します。

[select_template_text]
label = カスタム投稿を紐付ける
type = select
code = 0

次に「PHP CODE (Experimental Option)」で以下のように設定して保存します。

$values = array();
$posts = get_posts(array( 
'post_type' => 'template_text', 
 'numberposts' => -1)); 
foreach($posts as $post) { 
$values[] = $post->ID;
$valueLabels[] = $post->post_title; 
} 

以上で投稿画面のカスタムフィールドテンプレートから、カスタム投稿のエントリーを選択できるようになります。

参考:WordPress Wednesday: Custom Field Templates Part II – Using PHP in Your Templates