web-dev-qa-db-fra.com

Comment passer correctement en revue ces URL externes pour les insérer dans le sitemap à l'aide de ce hook

J'ai filtré les URL que je voudrais ajouter à Push dans un sitemap. J'utilise l'un des plugins sitemap, qui a des crochets pour le modifier davantage.

mon code:

// 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')
    );
}

Comme vous pouvez le voir dans mon code, j'ai ce type d'URL www.example.com/used-cars/location/new-york/model/bmw & www.example.com/used-cars/model/mercedes-benz

Donc, mon problème est qu’il existe des milliers de ces URL et que je les insère toutes dans ce sitemap.

Ma question est donc la suivante: n’est-il pas possible de les boucler? que de les insérer dans le code un par un comme si

array('location' => home_url('www.example.com/used-cars/model/aston-martin'), 'lastmod' => '27/03/2017', 'frequency' => 'auto', 'priority' => '0.8')
2
joe city

Voici un coup de poignard à cela. Je ne sais pas exactement ce que sont dans votre URL les taxonomies, ni même quelles sont vos taxonomies, mais il vous suffirait de parcourir en boucle tout ce qui ajoute au tableau de pages avec les tableaux. Vous devez définir tous vos modèles dans un tableau ou les extraire de la base de données en utilisant quelque chose comme 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;
}

J'espère que cela vous permet de commencer.

1
brianjohnhanna