个性化阅读
专注于IT技术分析

WordPress-CPT,ACF-如何自定义管理员编辑post页面?

点击下载

我想编辑/自定义管理员编辑页面。

描述

  • 我做了一个自定义帖子类型
  • 制作了两组高级自定义字段组, 即group_1和group_2(每个组包括几个自定义字段)
  • 制作了两个自定义用户角色类型user_type_1和user_type_2

目标

  • 我希望user_type_1能够写入group_1且只能读取group_2。
  • 我希望user_type_2能够写入group_2且只能读取group_1。

问题

  • 我如何编辑管理员编辑页面? (需要调用哪些操作来操纵它们?)
  • 删除元素id =” post-body-content”中的默认正文的哪些操作
  • 在元素id =” postbox-container-2″中自定义呈现ACF主体

#1


我将构建一个jQuery脚本, 该脚本将使用$(‘input’)。attr(‘readonly’, true);将输入字段设置为只读。 (简体)基于当前用户角色。

我担心, 当我不将该字段设为字段时, 它不会将显示为灰色的字段保存回数据库。

这是完整的代码, 以后任何人都需要它:

add_action('admin_head', 'rtt_conditional_acf_post_input');

function rtt_conditional_acf_post_input()
{

    $role = rtt_get_current_user_roles();

    $target = null;
    if (in_array("user_type_1", $role)) {
        $target = '#acf-group_5e1d936b7e583'; // <--- element id of group_1

    } else if (in_array("user_type_2", $role)) {
        $target = '#acf-group_5e1d93bdf2a56'; // <--- element id of group_2
    }


    if($target) {
        ?>

        <script type="application/javascript">

            $ = jQuery;
            $(document).ready(function () {

                let target = '<?php echo $target; ?>';

                $(target).find("input").each(function () {
                    $(this).attr('readonly', true);
                });

            });
        </script>
        <?php
    }
}

function rtt_get_current_user_roles()
{
    if (is_user_logged_in()) {
        $user = wp_get_current_user();
        $roles = ( array )$user->roles;
        return $roles; // This returns an array
        // Use this to return a single value
        // return $roles[0];
    } else {
        return array();
    }
}

我只会在执行完整脚本之前添加当前页面是否为后期编辑的检查。

赞(0)
未经允许不得转载:srcmini » WordPress-CPT,ACF-如何自定义管理员编辑post页面?

评论 抢沙发

评论前必须登录!