为了账号安全,请及时绑定邮箱和手机立即绑定

添加带有类别的列表以供选择,并将其另存为帖子的类别

添加带有类别的列表以供选择,并将其另存为帖子的类别

PHP
红颜莎娜 2021-05-12 10:20:17
我有一个解决方案,可以使用户现在可以在其帖子中添加类别。问题:他们不知道哪些已经存在,哪些知道。因此,我想走一条路线,用户可以选择(复选框?)现有的类别。我的问题:如何正确执行此操作?我的代码如下:                           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函数。


查看完整回答
反对 回复 2021-05-28
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信