【问题标题】:Multiple user role to a custom post type自定义帖子类型的多个用户角色
【发布时间】:2020-12-29 15:46:17
【问题描述】:

我创建了一个 CPT、issue_chapter 和一个新的用户翻译器。现在如何在此 CPT 中添加带有翻译者列表的下拉列表? “作者”和“翻译者”都应该在那里。

我创建了一个元框

add_meta_box( 
        'translator', 
        'Translator', 
        'zc_translator_meta_box_callback', 
        'issue_chapter', 
        'advanced', 
        'high' );

function zc_translator_meta_box_callback( $post ) {
$role = 'translator';

$query_users_ids_by_role = array(
    'field' => 'id',
    'role' => $role
);

$array_of_users_ids = get_users( $query_users_ids_by_role );

$users_ids_list = implode( ',',$array_of_users_ids );

$query_for_dropdown = array(
    'include' => $user_ids_list,
);

wp_dropdown_users( $query_for_dropdown );
}

现在如何保存值? 谢谢。

【问题讨论】:

    标签: wordpress custom-post-type user-roles


    【解决方案1】:

    这就是解决方案。谢谢。

    add_meta_box( 'the_translator',  
            'Translator', 
            'zc_the_translator_callback', 
            'issue_chapter', 
            'advanced', 
            'high' 
        );
    
    add_action( 'save_post', 'zc_save_the_translator_data' );
    
    function zc_the_translator_callback( $post ){
    wp_nonce_field( 'zc_save_the_translator_data', 'zc_the_translator_meta_box_nonce' );
    $value = get_post_meta( $post->ID, '_the_translator_value_key', true );
    ?>
    
    <label for="zc_the_translator_field">Translator</label>
    <select name="zc_the_translator_field" id="zc_the_translator_field">
        <option value="0">-- Select Translator --</option>
        <?php
        $args = array(
            'role' => 'translator'
        );
        $user_list = get_users($args);
        foreach( $user_list as $user ) : setup_postdata($post); ?>
            <option value="<?php echo $user->ID; ?>" <?php selected($value, $user->ID); ?>><?php echo $user->user_nicename ; ?></option>
        <?php endforeach; ?>
    </select>
    
    <?php   
    }
    
    function zc_save_the_translator_data( $post_id ){
    if( !isset( $_POST['zc_the_translator_meta_box_nonce']) ){
        return;
    }
    if( !wp_verify_nonce( $_POST['zc_the_translator_meta_box_nonce'], 'zc_save_the_translator_data' ) ){
        return;
    }
    if( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){
        return;
    }
    if( !current_user_can( 'edit_post', $post_id ) ){
        return;
    }
    if( !isset( $_POST['zc_the_translator_field']) ){
        return;
    }
    $my_data = sanitize_text_field( $_POST['zc_the_translator_field'] ) ;
    update_post_meta( $post_id, '_the_translator_value_key', $my_data );
    }
    

    要检索值,请使用:

    <?php echo get_post_meta( $post->ID, '_the_translator_value_key', true ); ?>
    

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 2021-06-09
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多