如何覆盖unctions.php中的函数调用?

时间:2013-02-01 作者:Mert Nuhoglu

在函数中。主题的php调用show_admin_bar(false) 在前端隐藏管理栏:

if (!is_admin())
{
    wp_deregister_style( \'bp-admin-bar\' );
    if ( function_exists( \'show_admin_bar\' ) )
    {
        show_admin_bar( false );
        remove_action( \'bp_init\', \'bp_core_load_buddybar_css\' );
    }
}
我想让管理栏出现在admin 用户。为此,我向插件中添加了以下代码:

add_action(\'plugins_loaded\', \'show_admin_bar_to_admins\', 100);
function show_admin_bar_to_admins()
{
    if (current_user_can(\'manage_options\')) {
        show_admin_bar(true);
    }
}
但这个电话并没有起到什么作用。我把100 作为优先级值,以便使此函数的调用晚于内部调用functions.php. 但这没什么不同。

有没有一种方法可以在插件内进行函数调用,以在插件内调用之后执行functions.php.

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

首先:这个主题是如此的做错了。我们不应该简单地在函数中填充普通调用。php文件。这些应该包好并钩住。最好是after_setup_theme(). 顺便说一句,你可以试试同样的钩子。

SO网友:Ahmad M

我认为显示或隐藏管理栏的最好方法是show_admin_bar 筛选,并在筛选函数中指定所需的条件:

add_filter(\'show_admin_bar\', \'ad_show_admin_bar\');

function ad_show_admin_bar($show) {
    // show front-end admin bar for admins only
    if(current_user_can(\'manage_options\')) {
        return true;
    } else {
        return false;
    }
}
这将为管理栏添加必要的脚本和样式。

结束

相关推荐

我的AJAX API插件不起作用

我创建了一个小小的AJAX插件来计算文章的点击率并绕过缓存,但它不起作用,也没有抛出任何错误。你能看出我做错了什么吗?<?php add_action(\'wp_ajax_nopriv_LogHit_callback\', \'LogHit_callback\'); add_action(\'wp_ajax_LogHit_callback\', \'LogHit_callback\'); function HitCount() { ?>