web-dev-qa-db-ja.com

管理者専用の新しいWordPressテーマをアクティブにする

私のサイトのテーマを一つ変更します。私は新しいテーマについても多くの変更をする必要があります。

だから私がやりたいことは、私は管理者だけのために新しいテーマをアクティブにする必要があるということです。他のユーザーがこのサイトにアクセスするときは、現在のテーマを使用する必要があります。

私は以下のコードを試してみましたが、うまくいきませんでした。それはサイトを壊します。

出典: 管理者用に別のテーマを表示しますか?

/*
Plugin Name: Theme Switch if Admin
Description: Display different theme to user if logged in as admin
Author: Kyle Barber
*/
    add_filter('template', 'change_theme');
    add_filter('option_template', 'change_theme');
    add_filter('option_stylesheet', 'change_theme');
    function change_theme($theme) {
        if ( current_user_can('manage_options') ) {
            $theme = 'twentyeleven';
        }

        return $theme;
    }
1
Ranuka

最初に、あなたのコードをインプリメントした後にエラーを得るために WordPressデバッグモード をアクティブにするべきです。私の側でもテストされたコードは動作するはずです。私はクライアントのインストールにそれを使用し、そして本当にうまくいきます。以下の私の情報源を見てください。ここでpopperのようにテーマスラッグに正しい文字列を使うことが重要です。このコードは、テーマの中ではなく、インストールのプラグインとしても使用する必要があります。また、あなたのインストールが マルチサイト - テーマは各サイトで使用可能でなければならないというヒントもあり、テーマを切り替えるには小さなプラグインを使います。

add_filter( 'template', 'fb_change_theme' );
add_filter( 'option_template', 'fb_change_theme' );
add_filter( 'option_stylesheet', 'fb_change_theme' );
add_filter( 'pre_option_stylesheet', 'fb_change_theme' );
function fb_change_theme($theme) {

    if ( current_user_can( 'manage_options' ) ) {
        $theme = 'popper';
    }

    return $theme;
}
0
bueltge