WordPress : Le meilleur endroit du code pour créer un fichier robots.txt

Publié par Jean-Michel le

J’utilise le framework Option-Tree pour les options de mon thème. Maintenant, je veux ajouter l’option pour créer et modifier le fichier robots.txt. Tout d’abord, j’ai la fonction pour récupérer le contenu du fichier ou le créer avec un contenu par défaut ; est-ce:

function get_robots($path)
{
$robots_file = $path . DIRECTORY_SEPARATOR . 'robots.txt'; //The robots file.
if(file_exists($robots_file)){
    return file_get_contents($robots_file);

} else {
    $default_content = "User-agent: *nDisallow:";
    file_put_contents($robots_file, $default_content);
    return $default_content;
}
}

get_robots(getcwd());

Si j’utilise cette fonction sur functions.php, elle s’exécutera à chaque chargement de page, et c’est un petit gaspillage. Je prévois d’utiliser cette fonction sur robots.phpet je l’appellerai quand j’en aurai besoin. Mais, quand c’est le meilleur moment, où est le meilleur endroit du code pour l’exécuter une fois ?

Chaque fois que je charge la page des options, par exemple ? Modifier : Non, cela ne fonctionne pas, car les paramètres d’options sont inclus, de functions.phpsorte qu’il crée le fichier à chaque vue de page.

Solution n°1 trouvée

La question contient trop de détails. Peu importe ce que vous voulez faire, si vous ne voulez exécuter le code qu’une seule fois, le meilleur moment est l’activation du thème. probablement quelque chose comme

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) {
get_robots();
}

mais : c’est un excellent exemple de la raison pour laquelle les thèmes ne doivent pas toucher aux fonctionnalités au-delà de la conception frontale, car il est facile de voir que vous ne comprenez pas comment robots.txt est généré par wordpress et que vous risquez de perturber la fonctionnalité des plugins dédiés. En fait, il est peu probable que votre code fonctionne sur un site avec des paramètres de sécurité minimaux.

Solution n°2 trouvée

Vous sous-estimez la complexité de la gestion des fichiers robots dans WordPress. La présence de fichier physique est l’un des deux cas.

Si le fichier physique n’est pas présent lors du chargement du modèle, des is_robots()vérifications sont effectuées et, dans le cas positif, do_robots()s’exécutent, générant et servant le « fichier » à la volée.

Le simple fait d’aller de l’avant et robots.txtde créer un site arbitraire pourrait très bien faire des ravages avec le code associé qui utilise un fichier virtuel et des crochets.

Répondre à une question directe – Je ne suis pas sûr des objectifs que vous poursuivez avec cette fonctionnalité, il est donc un peu difficile de dire ce qui fonctionnerait le mieux pour le timing. Le plus simple peut être de l’exécuter sur la page d’options du thème de visite (de la même manière que la visite des paramètres de permalien natif effectue un vidage de permalien).

Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *