当前位置: 首页>>网站问题>>正文


如何检查您是否在WP Admin部分的特定页面中?例如,我如何检查我是否在用户>您的个人资料页?

webfans 网站问题 , , , , 去评论

问题描述

我正在构建一个插件,我想在管理员头中添加一些javascript,但仅限于某些管理页面。我不是指您自己创建的WordPress页面中的页面,而是’Your Profile’,’Users’等现有的管理部分页面。是否有专门用于此任务的wp功能?我一直在寻找,我只能找到布尔函数is_admin和动作挂钩,但不能只检查布尔函数。

最佳解决方法

这样做的方法是使用’admin_enqueue_scripts’挂钩到en-queue所需的文件。这个钩子将传递一个$ hook_suffix,它与当前加载的页面有关:

function my_admin_enqueue($hook_suffix) {
    if($hook_suffix == 'appearance_page_theme-options') {
        wp_enqueue_script('my-theme-settings', get_template_directory_uri() . '/js/theme-settings.js', array('jquery'));
        wp_enqueue_style('my-theme-settings', get_template_directory_uri() . '/styles/theme-settings.css');
        ?>
        <script type="text/javascript">
        //<![CDATA[
        var template_directory = '<?php echo get_template_directory_uri() ?>';
        //]]>
        </script>
        <?php
    }
}
add_action('admin_enqueue_scripts', 'my_admin_enqueue');

次佳解决方法

wp-admin中有一个名为$ pagenow的全局变量,它包含当前页面的名称,即edit.php,post.php等。

您还可以检查$ _GET请求以进一步缩小您的位置,例如:

global $pagenow;
if (( $pagenow == 'post.php' ) && ($_GET['post_type'] == 'page')) {

    // editing a page

    }

if ($pagenow == 'users.php') {

    // user listing page

    }

if ($pagenow == 'profile.php') {

    // editing user profile page

    }

第三种解决方法

最全面的方法是在WordPress 3.1中添加get_current_screen

$screen = get_current_screen();

回报

WP_Screen Object (
    [action] => 
    [base] => post
    [id] => post
    [is_network] => 
    [is_user] => 
    [parent_base] => edit
    [parent_file] => edit.php
    [post_type] => post
    [taxonomy] => 
)

第四种方法

为上述问题提供替代方法/方法。

// When you are viewing the users list or your editing another user's profile
add_action( 'admin_print_scripts-users.php', 'your_enqueue_callback' );

// When you are editing your own profile
add_action( 'admin_print_scripts-profile.php', 'your_enqueue_callback' );

function your_enqueue_callback() {
    wp_enqueue_script( .. YOUR ENQUEUE ARGS .. );
}

此方法更直接地针对特定页面,并避免在回调中需要条件逻辑(因为您已在选定的挂钩中进行了区分)。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2656.html,转载请务必附带本地址声明。