web-dev-qa-db-ja.com

匿名ユーザーによるThemes Customizerへのアクセスを許可

テーマを作成し、Themes Customizerを使用しました。匿名ユーザーにテーマカスタマイザへのアクセスを許可せずに保存できる方法はありますか?

ユーザーがどのような種類のテーマのカスタマイズを提供し、それをどのように変更できるかをユーザーが知ることができれば、ユーザーエクスペリエンスの点で非常に便利です。

ありがとうございました

4
Jeg Bagus

匿名ユーザーがあなたのテーマカスタマイザにログインすることを可能にするための実装が少し巧妙です。ここで私が使用するステップバイステップです:

  1. まずデモロールを持つユーザを作成します(デモロールはWordPressでは利用できません。そのため、デモロールを追加するには以下のようなコードを書く必要があります)。

    function jeg_demo_role () { add_role( 'demo', 'Demo', array( 'read' => true, 'edit_theme_options' => true, 'edit_posts' => false, 'delete_posts' => false )); } add_action('init', 'jeg_demo_role');

  2. 今、あなたはユーザーを自動的に記録してテーマカスタマイザにリダイレクトするテンプレートを作成する必要があるでしょう。

    / **テンプレート名:デモ - テーマカスタマイザ* /

    $ creds = array( 'user_login' => 'demo'、 'user_password' => 'demo');

    $ user = wp_signon($ creds、false);

    if(is_wp_error($ user)){echo $ user-> get_error_message(); } else {$ customizerurl = get_admin_url()。 'customize.php'; wp_redirect($ customizerurl); } 出口;

  3. カスタマイザを忘れずに、カスタマイザの保存オプションを無効にしてください。

    関数jeg_is_demo_user(){if(is_user_logged_in()){$ current_user = wp_get_current_user(); if($ current_user-> roles [0] === 'demo'){trueを返します。 falseを返します。 }

    / **デモの保存を無効にする*/function jeg_customize_save(){if(jeg_is_demo_user()){終了; add_action( 'customize_save'、 'jeg_customize_save');

  4. その場合は、それらのテンプレートを使用してページを作成するだけで済みます。ユーザーがそれらのURLにアクセスすると、自動的に他のページにリダイレクトされます。

0
Jeg Bagus

このソリューションを使用して、ユーザーがアカウントを登録しなくても特定のページにアクセスできるようにします。

http://codex.wordpress.org/Function_Reference/wp_signon

それがうまくいかないか、あなたがさらに援助を必要とするかどうか私に知らせてください。

0
Pali Madra