web-dev-qa-db-ja.com

このフックを使用してこれらの外部URLを適切にループしてサイトマップに取り込む方法

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/bmwwww.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')
2
joe city

これはそれを突き刺すことです。私はあなたの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;
}

これがあなたが始められることを願っています。

1
brianjohnhanna