Pushに追加したいURLをサイトマップにフィルタしました。さらに修正するために フック を持つサイトマッププラグインの1つを使用しています。
私のコード:
// add to theme's functions.php
add_filter('bwp_gxs_external_pages', 'bwp_gxs_external_pages');
function bwp_gxs_external_pages($pages)
{
return array(
array('location' => home_url('www.example.com/used-cars/location/new-york/model/bmw'), 'lastmod' => '27/03/2017', 'frequency' => 'auto', 'priority' => '1.0'),
array('location' => home_url('www.example.com/used-cars/location/los-angeles/model/aston-martin'), 'lastmod' => '27/03/2017', 'frequency' => 'auto', 'priority' => '0.8')
array('location' => home_url('www.example.com/used-cars/model/mercedes-benz'), 'lastmod' => '27/03/2017', 'frequency' => 'auto', 'priority' => '0.8')
);
}
私のコードでわかるように、私はこれらの種類のURLを持っていますwww.example.com/used-cars/location/new-york/model/bmw
&www.example.com/used-cars/model/mercedes-benz
だから私の問題は、何千ものこれらのURLがあり、私はそれらをすべてこのサイトマップにプッシュすることです。
それで私の質問は、おそらくそれらをループオーバーする方法がないかということです。そのように一つずつコードにそれらを挿入するより
array('location' => home_url('www.example.com/used-cars/model/aston-martin'), 'lastmod' => '27/03/2017', 'frequency' => 'auto', 'priority' => '0.8')
これはそれを突き刺すことです。私はあなたのURLが分類法であるのか、あるいは分類法であるのかさえ正確にはわかりませんが、基本的には配列を持つページ配列に追加するすべてをループする必要があります。すべてのモデルを配列で定義するか、get_option()
のようなものを使用してデータベースからそれらを取得する必要があります。
add_filter( 'bwp_gxs_external_pages', 'bwp_gxs_external_pages', 10, 1 );
function bwp_gxs_external_pages($pages)
{
$models = array( 'aston-martin', 'bmw', 'mercedes-benz' /*...*/ );
$locations = get_terms( array(
'taxonomy' => 'location',
'hide_empty' => true,
) );
// Loop through the search terms
foreach ( $models as $model ) {
foreach ( $locations as $location ) {
$pages[] = array(
'location' => home_url( '/used-cars/location/' . $location->slug . '/model/' . $model ),
'lastmod' => '27/03/2017',
'frequency' => 'auto',
'priority' => '0.8'
);
}
$pages[] = array(
'location' => home_url( '/used-cars/model/' . $model ),
'lastmod' => '27/03/2017',
'frequency' => 'auto',
'priority' => '0.8'
);
}
return $pages;
}
これがあなたが始められることを願っています。