web-dev-qa-db-ja.com

Nav-menus.phpをエディタで利用可能にする

管理サイドバーから[表示]メニューを削除しました。

function clean_menu() {
       remove_menu_page( 'themes.php' ); 
}
add_action('admin_menu','clean_menu');

その後、サイドバーの親としてnav-menu.phpを手動で追加しました。

function menu_reorder($menu_ord) {
    if (!$menu_ord) return true;

    return array(
        ...,
        'nav-menus.php',
        ...
    );
}
add_filter('custom_menu_order', 'menu_reorder'); 
add_filter('menu_order', 'menu_reorder');

Adminとしてはうまく機能していますが、私がエディタとしてログインすると、必要な機能を有効にしていますが、nav-menu.phpに移動するのはnot authorizedです。

function manage_users() {
    if ( get_option( 'add_cap_editor_once' ) != 'done' ) {

        $edit_editor = get_role('editor');

        $edit_editor->add_cap('edit_themes');
        $edit_editor->add_cap('edit_theme_options');

        update_option( 'add_cap_editor_once', 'done' );
    }
}
add_action( 'init', 'manage_users' );

なぜこれがうまくいかないのですか?

1
jDelforge

ああ、わかってるよ :

以前の操作による問題がありました。

add_capデータベースを変更するですので、どういうわけか私は他の機能の上に書いていましたそしてそれは望みの結果を破りました。

だから私はいくつかのremove_capを使ってその役割をきれいにし、私の関数を元に戻してください。

0
jDelforge