フォーラム

[解決済み] ダッシュボード以外にログインさせたい。 (8 件の投稿)

  1. dogante
    メンバー
    2 週前の投稿 #

    wplit2.8.4というプラグインを使用して、サイト利用者のWP管理画面左側のサイドバーの項目の表示をコントロールしています。

    wpliteでダッシュボードを非表示にすると、サイト利用者が管理画面にログインした際に404エラー(指定されたファイルまたはディレクトリーは存在いたしません。)が返されてしまいます。そこで、利用者がログインした際に、ダッシュボードの代わりに、直接、管理画面の「ページ」(ページ一覧画面)等を表示させたいのですが、どのようにすれば可能でしょうか?

    また、プラグインなどありました、教えて下さい。

    よろしくお願いします。

  2. jim912
    メンバー
    2 週前の投稿 #

    doganteさん、こんにちは。

    initでフックして、$_SERVER['REQUEST_URI']がダッシュボードに該当するものであれば、ページ一覧にリダイレクトさせれば可能です。

    別途、ダッシュボードのメニューも非表示にする処理も必要ですね。

  3. dogante
    メンバー
    2 週前の投稿 #

    jim912さん
    ご回答、ありがとうございました。

    initでフックして、$_SERVER['REQUEST_URI']がダッシュボードに該当するものであれば、ページ一覧にリダイレクトさせれば可能です。

    トライしてみます。

    別途、ダッシュボードのメニューも非表示にする処理も必要ですね。

    こちらに関しては、WPliteというプラグインで対応できました。

  4. dogante
    メンバー
    2 週前の投稿 #

    jim912さん
    いろいろやってみて下記のコードに行き着いたのですが、動作しません。
    (私のサーバはアイルを使用しており、IIS(Windows)のため.htaccessを設置するのに問題がありました。設置できないこともないかもしれませんが、まだ解決していない状態です。そのため、エラーメッセージはブラウザーに表示できていない状態です。)

    function redirect_dashiboard() {
    if ( $_SERVER['REQUEST_URI'] == '/wordpress/wp-admin/index.php' || $_SERVER['REQUEST_URI'] == '/wordpress/wp-admin/' ) {
    	header( 'HTTP/1.1 301 Moved Permanently' );
    	header( 'Status: 301 Moved Permanently' );
    	header( 'Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'/wordpress/wp-admin/edit-pages.php' );
    	exit(0); // 任意(これを記述しておくと誤って出力されることを防げる。)
    }
    add_action( 'init', 'redirect_dashiboard' );

    どなたか、間違っている箇所などお分かりですか?

    よろしくお願いします。

  5. dogante
    メンバー
    2 週前の投稿 #

    下記のコードは動作はしませんが、コードを下記へ変更し管理者がログインしている場合の対応をしました。

    function redirect_dashiboard() {
    if ( !current_user_can('manage_options') && ($_SERVER['REQUEST_URI'] == '/wordpress/wp-admin/index.php' || $_SERVER['REQUEST_URI'] == '/wordpress/wp-admin/' ) ) {
    	header( 'HTTP/1.1 301 Moved Permanently' );
    	header( 'Status: 301 Moved Permanently' );
    	header( 'Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'/wordpress/wp-admin/edit-pages.php' );
    	exit(0);
    }
    add_action( 'init', 'redirect_dashiboard' );

    どなたか、間違っている箇所などお分かりですか?

    よろしくお願いします。

  6. dogante
    メンバー
    2 週前の投稿 #

    下記のコードは動作はしませんが、コードを下記へ変更しwp_redirectタグを使用しました。

    function redirect_dashiboard() {
    if ( !current_user_can('manage_options') && ($_SERVER['REQUEST_URI'] == '/wordpress/wp-admin/index.php' || $_SERVER['REQUEST_URI'] == '/wordpress/wp-admin/' ) ) {
    	wp_redirect(get_option('siteurl') . '/wordpress/wp-admin/edit-pages.php');
    	exit(0);
    }
    add_action( 'init', 'redirect_dashiboard' );

    どなたか、間違っている箇所などお分かりですか?

    よろしくお願いします。

  7. jim912
    メンバー
    2 週前の投稿 #

    doganteさん、こんにちは。

    気が付いたところでは、} が1つ足りないようです。

  8. dogante
    メンバー
    2 週前の投稿 #

    jim912さん
    ご回答、ありがとうございました。

    気が付いたところでは、} が1つ足りないようです。

    上記で解決しました。

    簡単なことですが、
    wp_redirect(get_option('siteurl') . '/wordpress/wp-admin/edit-pages.php');
    の部分のパスが間違っていたので、下記に変更しました。
    wp_redirect(get_option('siteurl') . '/wp-admin/edit-pages.php');

返信

ログイン しなければ投稿できません。

About this Topic

Tags

タグ はまだありません。