使用子主题的函数向主题添加自定义函数。php

时间:2015-05-18 作者:square_eyes

我正在使用一个主题Indigo 并使其在子主题配置中正常工作。我想添加一个自定义函数。与子样式不同。css,我读到您不需要导入父函数。php。但是,当我将自己的函数添加到空白文件时,函数。php在子主题文件夹中,我的页面无法正确加载,并且我看到了子函数中的文本。php。

我在这里看到的解决方案要求父功能。php具有可以重写的函数。

我的选择是什么?我想要我的定制,但我不想通过主题更新来阻止它们。

这就是我想顺道拜访的。。。

/**
 * Disable admin bar on the frontend of your website
 * for subscribers.
 */
function themeblvd_disable_admin_bar() { 
    if( ! current_user_can(\'edit_posts\') )
        add_filter(\'show_admin_bar\', \'__return_false\'); 
}
add_action( \'after_setup_theme\', \'themeblvd_disable_admin_bar\' );

/**
 * Redirect back to homepage and not allow access to 
 * WP admin for Subscribers.
 */
function themeblvd_redirect_admin(){
    if ( ! current_user_can( \'edit_posts\' ) ){
        wp_redirect( site_url() );
        exit;       
    }
}
add_action( \'admin_init\', \'themeblvd_redirect_admin\' );
它应该为低级别登录禁用WP管理栏。

仅供参考,我已在父函数中对其进行了测试。php

2 个回复
SO网友:Brad Dalton

我认为问题在于你对钩子和条件语句的选择。尝试初始化并删除!。

function themeblvd_disable_admin_bar() { 
    if( current_user_can(\'edit_posts\') )
        add_filter(\'show_admin_bar\', \'__return_false\'); 
}
add_action( \'init\', \'themeblvd_disable_admin_bar\' );
看起来重定向的条件也错误

function themeblvd_redirect_admin(){
    if ( current_user_can( \'edit_posts\' ) ){
        wp_redirect( site_url() );
        exit;       
    }
}
add_action( \'admin_init\', \'themeblvd_redirect_admin\' );

If these snippets work as tested please mark this answer as accepted and up vote using the arrows to the left. Thanks

SO网友:scottdurban

我使用以下命令阻止订阅者查看管理栏,并在他们尝试访问管理区域时设置重定向。

//remove wp-admin access and remove admin bar from everyone who can\'t edit posts

function remove_admin_bar() {
    if (!current_user_can(\'edit_posts\') && !is_admin()) {
     add_filter(\'show_admin_bar\', \'__return_false\');
    }
}
add_action(\'init\', \'remove_admin_bar\');

function blockusers_init() {
    if ( is_admin() && ! current_user_can( \'edit_posts\' ) && 
    ! ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) ) {
    wp_redirect( home_url() );
    exit;
    }
}
add_action( \'init\', \'blockusers_init\' );

结束