web-dev-qa-db-ja.com

WordpressのURLのオートコンプリートを無効にする

私は最近、WordpressがURL全体を送信していないときにそのURLを自動補完しようとしていることに気付きました。例えば。このような投稿URLがあります。

http://www.mysite.com/some-post-title

私が以下のURLを閲覧するならば:

http://www.mysite.com/some-post-ti

URLはWordpressに送信されていますが、Wordpressはhttp://www.mysite.com/some-post-titleへの301リダイレクトを行っています。

どうすればこの動作を無効にできますか?

12
Luke

私は redirect_canonical 関数がtemplate_redirectにフックされていると思います。あなたはそれを無効にすることができるはずです:

remove_filter('template_redirect', 'redirect_canonical'); 

しかし、それはかなり複雑で、いくつかの重要なSEO機能を実行するので、それを実行したいかどうかを本当に考慮する必要があります。

サイトのURLに基​​づいて、着信リンクを適切なURLにリダイレクトします。

検索エンジンは、www.somedomain.comとsomedomain.comが同じ場所にある場合、それらは2つの異なるURLであると見なします。このSEOの機能強化により、すべての着信リンクをいずれかにリダイレクトすることで、重複するコンテンツに対するペナルティが防止されます。

フィード、トラックバック、検索、コメントポップアップ、および管理URLのリダイレクトを防止します。非パーマリンクをサポートしていないIIS 7、ページ/投稿のプレビュー、WP admin、トラックバック、robots.txt、検索、またはPOSTにリダイレクトしません。 _ リクエスト。

ユーザーが正確なWordPressクエリに基づいて存在しないURLを入力したときにも正しいリンクを見つけようとします。代わりに、正しいページを特定するためにURLの解析またはクエリを試みます。

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13

次のmayはSEOコンポーネントを台無しにせずに自動補完を殺しますが、私はそれを約束することはできません。 コードはほとんどテストされていません 私はこれを無効にしたくなかったので。確かにredirect_canonicalを勉強しなければなりません。

function kill_404_redirect_wpse_92103() {
  if (is_404()) {
   add_action('redirect_canonical','__return_false');
  }
}
add_action('template_redirect','kill_404_redirect_wpse_92103',1);
15
s_ha_dum

この「推測」を自動的に行わせるため、これは非常に無責任なようです。どちらが正しいページであるかを定義するための何らかの手段があれば、もっとオープンになるでしょう。

シーケンスとして作成されたページが多数ありますが、この自動推測では、開始ページとは対照的に、シーケンス内のどこかにある(ランダムに?)ページで応答することを誤って選択しています。

更新:これは既知の動作であり、ここで検討されています: https://core.trac.wordpress.org/ticket/16557

2
FitPM

FitPMの答えのフォローアップとして - 自動推測動作を無効にするプラグインが作成されました。

それは2017年8月2日の時点でWordpress 4.8で私のためにうまく働きます。プラグインはこちらです: https://wordpress.org/plugins/disable-url-autocorrect-guessing/

1
wrydere