サポート » 使い方全般 » authorアーカイブ

  • 解決済 lu4-H3yx

    (@lu4-h3yx)


    キーワード検索結果で、表示された自サイト名の直下にURLが表示されると思うのですが、そのURL内に、下記のようにユーザー名(ログインID)が表示されてしまいます。

    サイトURL/author/ユーザー名

    フォーラムを参考にして、下記の記述をfunctions.phpに追加したのですが、
    サイトURL/?author=1に対しては効果があったのですが、上記の問題には効果がありませんでした。

    add_filter( ‘author_rewrite_rules’, ‘__return_empty_array’ );
    function disable_author_archive() {
    if( $_GET[‘author’] || preg_match(‘#/author/.+#’, $_SERVER[‘REQUEST_URI’]) ){
    wp_redirect( home_url( ‘/404.php’ ) );
    exit;
    }
    }
    add_action(‘init’, ‘disable_author_archive’);

    自分なりに調べて他の方法も試してはみたのですが、知識に乏しいせいか解決できないでいます。もしかしたら、初歩的な質問かもしれないのですが、どなたか解決方法をご教示いただけませんでしょうか。

    ワードプレスバージョン:4.0
    テーマ:twenty twelve

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    if( is_author() && !empty( $_GET['author'] ) ) {
    	wp_redirect( home_url('404.php') );
    	exit;
    }

    みたいな感じで判定してあげるとうまくいきませんかね?
    著者アーカイブかどうかを判定して、その上でクエリ文字列を調べる感じです。

    モデレーター jim912

    (@jim912)

    まず、ログイン名と作成者アーカイブで表示されるスラッグは必ずしも一緒ではありません。

    ログイン名には大文字や半角スペース、ドット、アットマークなども使えるので、少し工夫するだけで、ブルートフォース攻撃をかわすことも可能であることは憶えておいてもらえればと思います。

    その上で、対策するとすれば

    add_filter( 'request', 'remove_author_query_var' );
    function remove_author_query_var( $query_vars ) {
    	if ( isset( $query_vars['author'] ) ) {
    		unset( $query_vars['author'] );
    	}
    	return $query_vars;
    }

    で、クエリーストリングの author を無効化することが可能です。

    スレッド開始 lu4-H3yx

    (@lu4-h3yx)

    お二人とも解答していただきありがとうございます。
    お返事が遅くなってしまって申し訳ございません(>_<)
    コードに逆クォートを付け忘れたためか、自分で投稿した質問が表示されず見れない状態が続いたので、諦めて解答の有無のチェックをしていませんでした。すみません!

    上記の状態だったため、自力で解決せねばと色々試しましたがやはりダメで、ユーザー名(ログインID)が表示される状態を一刻も早く解決したかったので、とりあえずプラグインを入れて、さらにユーザー名を変更することで対処しました。
    せっかく解決方法を教えていただいたのに、活かすことができず、本当にすみません。

    >ログイン名と作成者アーカイブで表示されるスラッグは必ずしも一緒ではありません。

    言われてみれば、ハイフンがなかったかもしれません。ただ、その他のアルファベットや数字は全く同じで大文字の部分も大文字で表示されていたので、焦ってしまいました。

    解答に気づく前にプラグインを入れてしまったので、せっかく教えて頂いた方法を試すことができませんでしたが、近日中にまたワードプレスでサイトを作成する予定なので、その際に皆さんに教えて頂いた方法を試してみようと思います。
    ご解答いただき、本当にありがとうございました!

    スレッド開始 lu4-H3yx

    (@lu4-h3yx)

    すみません!
    よく見たら、確かに作成者アーカイブのスラッグは実際のユーザー名を全て小文字にしたものになっていました。
    勘違いして記憶していたみたいです。
    失礼いたしました!(>_<)

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「authorアーカイブ」には新たに返信することはできません。