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')
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.