wordpressテーマのリンクを変更する解決策を見つけましたが、コンテンツのリンクは見つかりません。コンテンツのURLを取得する方法はありますか?それで、それらを変更することもできますか?
the content
フィルターを使用する必要があります。しかし、Apple.com/test/Apple.com/test-123/、Apple.com、Microsoft.com、Microsoft.com/test/のようなURLをどのように変更できるのでしょうか。関数は、コンテンツ内の一致するすべてのURLを正しく変更する必要もあります。
add_filter('the_content ', 'function_name');
同様の質問の答え は残念ながら機能しません。
これはリンクを変更するための私の実用的なソリューションですが、コンテンツ内のリンクではありません。
add_filter('rh_post_offer_url_filter', 'link_change_custom');
function link_change_custom($offer_post_url){
$shops= array(
array('shop'=>'Apple.com','id'=>'1234'),
array('shop'=>'Microsoft.com','id'=>'5678'),
array('shop'=>'Dell.com','id'=>'9876'),
);
foreach( $shops as $rule ) {
if (!empty($offer_post_url) && strpos($offer_post_url, $rule['shop']) !== false) {
$offer_post_url = 'https://www.network.com/promotion/click/id='.$rule['id'].'-yxz?param0='.rawurlencode($offer_post_url);
}
}
$shops2= array(
array('shop'=>'example.com','id'=>'1234'),
array('shop'=>'domain2.com','id'=>'5678'),
array('shop'=>'domain3','id'=>'9876'),
);
foreach( $shops2 as $rule ) {
if (!empty($offer_post_url) && strpos($offer_post_url, $rule['shop']) !== false) {
$offer_post_url = 'https://www.second-network.com/promotion/click/id='.$rule['id'].'-yxz?param0='.rawurlencode($offer_post_url);
}
}
return $offer_post_url;
}
これを行うには、the_content
フィルタなどを使用してみてください。
add_filter('the_content', function($content){
// filter $content and replace urls
$content = str_replace('http://old-url', 'http://new-url', $content);
return $content;
});
詳細: https://developer.wordpress.org/reference/hooks/the_content/