web-dev-qa-db-ja.com

カスタム投稿タイプをドロップダウンリストに表示する

私は3つのカスタム投稿タイプがあり、それぞれが約5つの分類法を持ち、2つのカスタム投稿タイプが2つの分類法を共有しています。

Post_typesを表示するドロップダウンの一部を除いて、フロントエンドから投稿用に設定されたものがすべて揃いました。

現在はフロントエンドの投稿作品ですが、カスタム投稿タイプが含まれていないためにURLが壊れています。

マーティンよろしく

編集:ちょうどコーデックスでこの につま​​ずいた ,

3
MartinJJ

それについてすみません、それは自分自身の質問に答えるために少し奇妙に感じるが、ここであなたは行き​​ます....

最初に変数を宣言します。(customcategory)

global $userdata;

$errors = array();

$title      = trim($_POST['wpuf_post_title']);
$customcategory      = trim($_POST['customcategory']);
$content    = trim($_POST['wpuf_post_content']);
$tags       = wpuf_clean_tags($_POST['wpuf_post_tags']);
$cat        = trim($_POST['cat']);

次に投稿を追加するための配列です。

 if (!$errors) {
    $frontend_post = array(
            'post_title'    => $title,
            'post_content'  => $content,
            'post_status'   => $post_status,
            'post_author'   => $userdata->ID,
            'post_category'    =>    array($_POST['cat']),
            'post_type' => $customcategory,
            'tags_input'    => $tags
    );

    $post_id = wp_insert_post($frontend_post);

そして最後にget_post_types関数からドロップダウンを作成します。

<?php 
          $args=array(
                     'public'   => true,
                     '_builtin' => false
                     ); 
                $output = 'names';
                $operator = 'and';
                $post_types=get_post_types($args,$output,$operator); 

          echo '<select name="customcategory">';
          foreach ($post_types  as $post_type ) {
          echo '<option value="'. $post_type.'">'. $post_type. '</option>';
}echo '</select>';
?>
4
MartinJJ