web-dev-qa-db-ja.com

ドメインをYoast SEOの正規URLにハードコードする

さまざまな理由から、私はワードプレスのブログを複数のサブドメインにまたがって複製するよう求められました。明らかに、これは重複したコンテンツの問題を引き起こすでしょう、それは私が一つのサブドメイン(www)を指し示して、標準タグの使用で軽減することを望みます。

私はそのサイトではYoast SEOを使用しています。この自動は標準的なタグを生成します - そして私がその時に使っているどのサブドメインでも使うようです。おそらくこれはWP_SITEURL設定などから拾い上げているのでしょうが、最初は複数のサブドメインを許可するようにこれを変更しなければなりませんでした。

Yoast SEOにすべての正規URLに単一のサブドメインを使用させることができる方法はありますか?他のサブドメインを使用するには、サイト上のすべてのリンクと一般的な機能(現在使用中のいずれか)が依然として必要ですが、標準は常に単一のサブドメインを指すようにする必要があります。

注意してください:リダイレクトはオプションではありません。

これを実行する最良の方法はYoast SEO APIを使用することですが、私はそれに慣れていません。希望するサブドメインを含めるには以下を調整する必要があると思いますが、生成されたURLの残りをそこに入れるための構文についてはよくわかりません。

add_filter( 'wpseo_canonical', 'http://www.' );
1
Gary

以下はあなたが他のドメインへの正規のURLのドメインを置き換えることができるはずであるそれを使用する小さいプラグインです。

<?php
/*
 * Plugin Name: WPSE WPSEO Canonical
 * Plugin URI: http://wordpress.stackexchange.com
 * Description: Changes canonical url domain.
 * Author: Sisir
 * Version: 1.0
 * Author URI: http://developerpage.net
 *
 **/

add_filter('wpseo_canonical', 'swpseo_canonical_domain_replace');
function swpseo_canonical_domain_replace($url){

    $domain = 'google.com'; // this can be loaded from option table if you want admin to set it.
    $parsed = parse_url(home_url());
    $current_site_domain = $parsed['Host'];
    return str_replace($current_site_domain, $domain, $url);

}

注:コードテストされていません。うまくいかないか教えてください

3
Sisir