カスタム メタ ボックス テンプレート チュートリアル シリーズのパート 1 では、一連のフィールドをループし、各フィールドと HTML に必要なさまざまな種類のフォーム フィールドを出力するカスタム メタ ボックスを設定する方法について説明しました。これで、アレイとスイッチ ボックスに高度な項目を追加する準備が整いました。
ラジオ ボタンは、チェックボックスのようなオン/オフ スイッチとしてではなく、ユーザーに 2 つのオプションのうち少なくとも 1 つを選択させるために使用されるため、実際には単独で使用されることはありません。最初に行う必要があるのは、単一のオプションを $custom_meta_fields
配列に追加することです。
これを、パート 1 で開始した元の $custom_meta_fields
配列内の他の配列項目に必ず追加してください。
この配列は、選択ボックスの項目とほぼ同じです。メインタグ、説明、および一意の ID があります。タイプを定義してから、オプション配列を追加します。後で保存された配列をチェックして保存された値を取得するため、オプション キーがオプションの値と同じであることが重要です。
リーリーこのコードは、メタ ボックス スイッチの最後の「break;」の後に追加されます。
リーリー
もう一度、これを$custom_meta_fields 配列に追加します。設定は、一意の ID と定義されたタイプを持つ同様のフィールドとほぼ同じです。
リーリー
リーリー
この例では、組み込みの分類法「カテゴリ」を使用します。これを$custom_meta_fields 配列に追加します。 「id」がカテゴリ名と同じであることを確認してください。
リーリー
リーリー
ここで$custom_meta_fields 配列を使用して、各 "tax_select" フィールドをループし、それをこの削除関数に追加することもできますが、おそらく、それらに個別に名前を付ける方がはるかに簡単です。カテゴリ ボックスを正しく削除するには、カテゴリ ボックスの div の ID を知っている必要があります。
remove_meta_box() の詳細については、WordPress Codex をご覧ください。
save_custom_meta() 関数に戻って変更します。
リーリー
次に、次の行を追加します:リーリー
次に、foreach ループの後に次のコードを追加します。 リーリーこれは、カテゴリ選択フィールドから値を取得し、それを投稿のカテゴリ用語として設定するだけです。
另一个不太可能但有用的字段是通过将 ID 保存在自定义字段中来将另一个帖子与某个帖子关联起来。这非常类似于 CMS,我发现它对于诸如链接幻灯片帖子类型以转到网站上的另一个帖子或页面之类的事情非常有用,只需从下拉菜单中选择它即可。您可以稍后在另一个函数中使用该 ID 查询该帖子,以从该帖子中获取您需要的任何信息。
array( 'label' => 'Post List', 'desc' => 'A description for the field.', 'id' => $prefix.'post_id', 'type' => 'post_list', 'post_type' => array('post','page') )
我们这里有所有常见的嫌疑人,但最后我们添加了一个额外的变量来保存您想要在列表中的帖子类型。您可以在此数组中包含帖子、页面和任何其他自定义帖子类型。
// post_list case 'post_list': $items = get_posts( array ( 'post_type' => $field['post_type'], 'posts_per_page' => -1 )); echo '<select name="'.$field['id'].'" id="'.$field['id'].'"> <option value="">Select One</option>'; // Select One foreach($items as $item) { echo '<option value="'.$item->ID.'"',$meta == $item->ID ? ' selected="selected"' : '','>'.$item->post_type.': '.$item->post_title.'</option>'; } // end foreach echo '</select><br /><span class="description">'.$field['desc'].'</span>'; break;
您可以添加很多选项来过滤此查询,但我们使用的是对设置帖子类型的所有帖子的基本抓取。
如果到目前为止您一直在关注本系列的两个部分,那么您的最终盒子应该如下图所示:
我们确实正在填写可重复使用的模板,用于创建可重复的自定义元框字段,并添加了这种高级甚至非正统的字段。我们将在下一篇文章中用一些更棘手但有用的字段(例如日期选择器和图像上传器)来结束该系列。
以上が詳細: 再利用可能なカスタム メタ ボックス: 詳細フィールドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。