私のブログはblog.mydomain.com
の下にあります。他のサブドメインからアクセスする必要がある静的コンテンツ用のページを使用しています。そのため、careers.mydomain.com
はblog.mydomain.com/careers
のWordPressコンテンツを表示します。
私の問題は、ページ上のすべてのリンクがまだblog.mydomain.com
を参照していることです。 WordPressに相対リンクの使用を依頼する方法はありますか?それともページのbaseURLを変更する方法?
パーマリンクがpost_link
のget_permalink
から返される前に通過するフィルターwp-includes/link-template.php
があります。そのフィルタを使ってリンクを変更することができます。
ただし、すべてのパーマリンクを相対的なものにすると、特定の状況で意図しない結果が生じる可能性があることに注意してください。 is_feed() == true
のときは、相対リンクは必要ないかもしれません。
post_link
フィルタが、変更が必要なすべてのURLを捕捉できないことがあります。その場合は、もっと効果の広いhome_url
フィルタを試すことができます。
もう1つの可能性(私のお気に入り)は、リンクを相対化するために出力バッファリングを使用することです。 (下の例)
安全のために、必要なときにだけリンクを変更できます。実際のブログから静的サブドメインにコンテンツを取得する方法はわかりませんが、HTTPリクエストを使用している場合は、クエリarg:?rlz
を追加して、テーマ/プラグインでそれを探すことができます。
if ( isset($_GET['rlz']) ) {
function my_ob_handler($HTML) {
return str_replace( home_url('/'), '/', $HTML );
}
ob_start( 'my_ob_handler' );
}