无论是如何构建写屏幕以便在前端发布,都可能包括屏幕上的类别,并将其添加到$_POST
, 但您的CPT仍然必须注册才能使用它们。我想Articles
CPT有这个功能,您可能在创建自己的功能时错过了这一步。
检查您是否为您的CPT注册了类别\'taxonomies\' => array( \'category\' )
在$args
大堆
旁注:要在注册post\\u类型后添加wordpress类别分类,还可以使用register_taxonomy_for_object_type( $taxonomy, $object_type );
哪里$taxonomy
是\'category\'
和$object_type
是\'your_post_type\'
快速检查$\\u POST[\'cat\']
2)如果以上都很好,请确保
\'$new_post\'
阵列正在接收正确的输入。如果您可能有多个类别,请确保
$_POST[\'cat\']
正在给您一个数组,如果没有,请在
$new_post
声明并传递。
if (is_array($_POST[\'cat\']) {
$category_array = $_POST[\'cat\'];
}
else { //for some reason we have a string
$category_array[] = $_POST[\'cat\'];
}
$new_post = array(
\'post_title\' => $title,
\'post_content\' => $content,
\'tags_input\' => $tags,
\'post_status\' => \'publish\',
\'post_category\' => $category_array,
\'post_type\' => $post_type
);
用于澄清的自定义分类方案(由于必须将其添加到生成创建后屏幕的任何内容中,我怀疑这是问题所在,但我将添加此内容以供参考)
如果您的类别是taxonomy you registered (即图书CPT的流派),$new_post
将需要tax_input
as described in wp_insert_post
parameters, 作为一个数组,就像上面的类别一样。
假设您的$_POST
有字段用于\'my_taxonomy\'
, 这是一个选定my_taxonomy
写入屏幕的选项,即:
$_POST[\'my_taxonomy\'] = array(
\'my_taxonomy\' => $entered_value[0],
\'my_taxonomy\' => $entered_value[1]
)
$new_post
看起来像这样:
$new_post = array(
\'post_title\' => $title,
\'post_content\' => $content,
\'tags_input\' => $tags,
\'post_status\' => \'publish\',
\'post_tax\' => $_POST[\'my_taxonomy\'],
\'post_type\' => $post_type
);
前面关于post\\u类型的回答将在post\\u类型行中声明您的自定义post类型。
\'post_type\' => $post_type );
您需要编辑变量的值
$post_type
的确如此
name_of_your_post_type