web-dev-qa-db-ja.com

投稿の作成/更新時にカスタム分類で発生する奇妙な問題

custom post typecustom taxonomyを作成しましたが、最初のアイテムと奇妙なことが起こったカテゴリ/受信者を選択すると、追加の数値カテゴリが自動的に作成され、選択がそれに変更されました。

例えば;

enter image description here

入力したonly受信者は「John」と「Michael」で、Johnを選択し、ページが再読み込みすると、「13」が追加されて選択され、更新するたびにnew番号が追加され、この新しい番号が受信者として選択されます。

does n't新しい番号を追加するのは、Ido n'tselectany受信者。

コード:

add_action( 'after_setup_theme', 'blm_theme_setup' );

function blm_theme_setup() {

    //.........

    // Add our custom post type
    add_action( 'init', 'blm_letter_post_type' );

   //........

}

function blm_letter_post_type() {

    register_post_type( 'letter',
                        array(
                            'labels'     => array(
                                'name'          => __( 'Letters' ),
                                'singular_name' => __( 'Letter' ),
                                //..........
                            ),
                            'public'     => true,
                            'taxonomies' => array( 'recipient' ),
                            'supports' => array('title', 'editor', 'revisions'),
                            'has_archive' => true,
                            'rewrite' => array('slug' => 'letters'),
                            //........
                        )
    );

    // Our args for the custom taxonomy below
    $args = array(
        'labels'      => array(
            'name'          => __( 'Recipients' ),
            'singular_name' => __( 'Recipient' ),
            //.....
        ),
        'meta_box_cb' => 'post_categories_meta_box',
    );

    // Register a custom taxonomy for our letter categories
    register_taxonomy( 'recipient', 'letter', $args );

    // Connect the post type and taxonomy together to be safe
    register_taxonomy_for_object_type( 'recipient', 'letter' );

}

注:綿毛を減らすために関連情報のみを含めようとしましたが、含まれていない引数はラベルまたはdescription、メニュー位置などの無関係な引数でした。メニューアイコン

編集:作成した「カテゴリ」が、選択した「カテゴリ」の用語IDと一致することに気づきました。したがって、Johnのterm id24であり、それを選択すると、その番号で新しい「カテゴリ」が作成され、選択されます。

ここで何が起こっていますか、どうすれば修正できますか?

1
Brett

これは、分類法のタイプと分類法の表示に使用するメタボックスタイプの間に不一致がある場合のワードプレスコアのバグです。階層分類には階層表示を使用し、非階層分類には「タグのような」表示を使用する必要があります。ミックスが必要な場合は、独自のメタボックスを作成する必要があります。このバグは非常に古いものであり、すぐに解決されるとは思えません。

2
Mark Kaplun

間違った構文を使用しています-次のようにしてください:

add_action( 'after_setup_theme', 'blm_theme_setup' );

function blm_theme_setup() {

    // Add our custom post type
    add_action( 'init', 'blm_letter_post_type' );

}

function blm_letter_post_type() {

register_post_type( 'letter',
                    array(
                        'labels'     => array(
                            'name'          => __( 'Letters' ),
                            'singular_name' => __( 'Letter' ),
                            //..........
                        ),
                        'public'     => true,
                        'taxonomies' => array( 'letter' ),
                        //........
                    )
);

// Our args for the custom taxonomy below
$args = array(
    'labels'      => array(
        'name'          => __( 'Recipients' ),
        'singular_name' => __( 'Recipient' ),
        //.....
    ),
    'meta_box_cb' => 'post_categories_meta_box',
);

register_taxonomy('recipient', 'letter',  $args);

}
0
Alex P

問題は、カスタム投稿タイプ定義の次の行に由来します。

                        'taxonomies' => array( 'letter' ),

バグのあるコードで検索したことはありませんが、カスタム投稿タイプがバグを作成するのと同じスラッグで分類法を作成するように見えます。

0
Kaperto