Exclure certaines pages du sitemap (Gestion:Tâches/Liste/624)

De Wikimedica
Exclure certaines pages du sitemap [En test]  Modifier cette tâche Aide
TypeTâche
CréationAntoine Mercier-Linteau
Responsable(s)Antoine Mercier-Linteau
ÉtatEn test
Date de création2023-08-31
Échéanceaucune
PrioritéUrgente
Projet(s)
<noinclude>
</noinclude>

Plusieurs pages sont inclues dans le sitemap mais ne doivent en fait pas être indexées (meta noindex est réglé programmatiquement).

Google n'aime pas quand les directives meta de la page contredisent le sitemap.

Il n'y a malheureusement pas de hook pour filtrer les pages du Sitemap, alors il faut amender le script.


Créer une sous-tâche
Aucune sous-tâche à afficher.
Aucune sous-tâche assignée à cette tâche.
Sous-tâches
- Type Priorité Titre Responsable(s) État Création
Voir les sous-tâches terminées...

Correctif

Dans maintenance/generateSitemap.php:

  1. Ajouter dans main()
    if(!$this->filterTitle(Title::makeTitle( $row->page_namespace, $row->page_title ))) {
    	continue;
    }
    
  2. Ajouter la méthode suivante:
    protected function filterTitle($title){
    	switch($title->getNamespace()) {
    		case NS_USER:
    		case NS_USER_TALK:
    			if(strpos($title->getText(), '/Brouillons/') > 0) { return false; } // Skip draft pages.
    		default:
    			$user = new User(); // Anonymous user.
    			if(!MediaWiki\Extension\SemanticACL\SemanticACL::onGetUserPermissionsErrors($title, $user, 'read', $result)) { return false; } // Skip pages that cannot be viewed by an anonymous user.
    	}
    
    	return true;
    }
    

Discussion