我有一个解决方案,可以使用户现在可以在其帖子中添加类别。问题:他们不知道哪些已经存在,哪些知道。因此,我想走一条路线,用户可以选择(复选框?)现有的类别。我的问题:如何正确执行此操作?我的代码如下: if(isset($_POST['entry']) AND !$_POST['entry'] == ""):$my_post = array();$my_post['post_title'] = $_POST['title'];$my_post['post_content'] = $_POST['entry'];$my_post['post_status'] = 'publish';$cat_name = sanitize_text_field( $_POST['newcat'] );$my_post ['cat_name'] = $cat_name;$category_id = get_cat_ID( $_POST['newcat'] );if ( ! $category_id ) { if ( ! is_admin() ) { die(); }$args = array( 'description' => "Category description", 'parent' => 0); $category_id = wp_insert_term( $_POST['newcat'], "category", $args );}$my_post['post_author'] = get_current_user_id();$my_post['tax_input'] = array('category' => $category_id);wp_insert_post( $my_post );然后,我显示了下拉类别,但是添加类别的复选框时我无法保存选择。$categories=get_categories(); foreach($categories as $category) { echo "<input type='checkbox' name='mychecky' value='$category->term_id' />"; echo $category->cat_name; echo '<br>'; }如何为我的帖子在每个清单中保存所选类别?
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
在表单中,清单应接受多个值,因此它必须是一个数组。HTML表单中的数组带有方括号,[]因此您的复选框名称应类似于mychecky[]。复选框输入的完整代码:
$categories = get_categories();
foreach($categories as $category) {
echo "<label><input type='checkbox' name='mychecky[]' value='$category->term_id' />$category->cat_name</label><br>";
}
然后,当您检查POST数据时,您应该从表单中获得一个数组,并且可以像这样分配它,因为post_category参数无论如何必须是一个数组:
// it is an array from a form with category IDs
if (isset($_REQUEST['mychecky'])) {
$my_post['post_category'] = $_REQUEST['mychecky'];
}
您可以将您的方法与分类法结合使用post_category,也可以将其与内置方法结合使用,检查文档中的wp_inset_post函数。
- 1 回答
- 0 关注
- 141 浏览
添加回答
举报
0/150
提交
取消