Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从前端表单中选择新职位的类别?_Php_Wordpress_Forms_Wordpress Theming - Fatal编程技术网

Php 从前端表单中选择新职位的类别?

Php 从前端表单中选择新职位的类别?,php,wordpress,forms,wordpress-theming,Php,Wordpress,Forms,Wordpress Theming,我有一个前端表单,可以让用户创建帖子。它只发送文本类型的标题、说明和自定义字段。 但我还想在表单中添加一个类别选项,该选项显示当前类别的列表,并让用户为他们的新帖子选择一个或多个类别。(选定类别将分配给新职位。) 这是一个WordPress网站,我使用Avada主题。自定义帖子类型是Avada的默认组合帖子。但是概括的答案也会很有帮助(请给出一些代码的解释) 下面是我的子主题fuctions.php中的php代码: if(isset($_POST['title'])){ $cu

我有一个前端表单,可以让用户创建帖子。它只发送文本类型的标题、说明和自定义字段。 但我还想在表单中添加一个类别选项,该选项显示当前类别的列表,并让用户为他们的新帖子选择一个或多个类别。(选定类别将分配给新职位。)

这是一个WordPress网站,我使用Avada主题。自定义帖子类型是Avada的默认组合帖子。但是概括的答案也会很有帮助(请给出一些代码的解释)

下面是我的子主题fuctions.php中的php代码:

    if(isset($_POST['title'])){

    $custom_field_address1 = $_POST['address1'];

    $my_post = array(

    'post_title' => $_POST['title'],
    'post_content' => $_POST['description'],
        
    'post_status' => 'publish', 
    'post_type' => 'companies',
    'meta_input' => array(
        'address1' => $custom_field_address1,
        )
);
    
    $post_id = wp_insert_post($my_post);

    add_post_meta( $post_id, 'address1', $custom_field_address1, false );
    echo 'New Post Saved !';
    
    die;
}
我的前端表单(我想查看公文包帖子类型的所有类别,并选择我想要的):


职位名称:
职位描述:
地址:

提交

我读过很多类似的答案,但大多数都是别人网站的代码,解释太少。因此,我需要获得更多帮助。

您可以创建一个选择。只需使用
get_terms
或类似功能获取类别列表

$categories = get_terms( [
    'taxonomy'   => 'category',
    'hide_empty' => false,
    'field'      => 'id=>name'
] );

?>

<select name="category">
    <?php foreach( $categories as $category_id => $category_name ) { ?>
        <option value="echo absint( $category_id ); ?>"><?php echo esc_html( $category_name ); ?></option>
    <?php } ?>
</select>
$categories=获取术语([
“分类法”=>“类别”,
“hide_empty”=>false,
'字段'=>'id=>名称'
] );
?>

将这个问题的措词改得更简单些,会使这个问题更容易回答。我做了一个完整的修改。编写了一个较短的代码,并在粘贴到此处之前对其进行了双重检查。
$categories = get_terms( [
    'taxonomy'   => 'category',
    'hide_empty' => false,
    'field'      => 'id=>name'
] );

?>

<select name="category">
    <?php foreach( $categories as $category_id => $category_name ) { ?>
        <option value="echo absint( $category_id ); ?>"><?php echo esc_html( $category_name ); ?></option>
    <?php } ?>
</select>