J'ai regardé des tutoriels sur la création d'un type de message personnalisé. Certains tutoriels indiquent que lors de l'activation/désactivation du plug-in, vous devrez appeler flush_rewrite_rules. Mais certains tutoriels ne l'ont pas mentionné du tout.
Flush_rewrite_rules est-il donc nécessaire lors de la création d'un type de publication personnalisé?
J'ai lu le codex: https://codex.wordpress.org/Function_Reference/flush_rewrite_rules
il dit simplement que c'est un appel coûteux, mais que se passera-t-il si vous n'appelez pas flush_rewrite_rules? J'ai sauvegardé mon .htaccess, après avoir appelé flush_rewrite_rules (où hard est défini sur true par défaut), l'ancien .htaccess et le nouveau .htaccess sont exactement les mêmes.
Flush_rewrite_rules est-il donc nécessaire lors de la création d'un type de publication personnalisé?
Ce n'est pas nécessaire , mais c'est une bonne idée. Les utilisateurs peuvent vider eux-mêmes les règles de réécriture en accédant simplement à Paramètres> Permaliens , mais s’ils ne le font pas et vous ne videz pas les règles vous-même. Si l'utilisateur essaie de voir un message personnalisé, il recevra une erreur 404.
De toute façon, le fichier .htaccess ne change pas. Tout ce que WordPress .htaccess fait, c'est d'envoyer toutes les demandes à index.php, qui exécute WordPress. WordPress détermine ensuite le contenu à charger en comparant l'URL demandée à ses propres règles de réécriture, stockées dans la base de données.
Pour qu'un type de message personnalisé fonctionne, il faut créer une règle qui indique à WordPress à quoi ressemble l'URL d'un type de message personnalisé. Comme ces règles sont coûteuses à générer, elles sont générées une fois et stockées dans la base de données. Donc, au moins une fois, vous devez générer les règles lorsque le plug-in est activé pour que la règle de type de publication personnalisée soit incluse. Cela peut être fait par programmation avec flush_rewrite_rules
lors de l'activation ou par l'utilisateur visitant Paramètres> Permaliens . Le faire vous-même offre une bien meilleure expérience aux utilisateurs de votre plugin.
Vous devez également les vider lors de la désactivation afin que les URL du type d'article qui n'existe plus correctement renvoient un 404 plutôt que de faire tenter à WordPress de charger un article à partir d'un type d'article inexistant.
Il est nécessaire de vider les règles de réécriture pour que WordPress génère et mette en cache les règles de réécriture rendant les publications de votre type de publication accessibles.
Jusqu'à ce que cette fonction soit appelée, tous les liens permanents pointant vers votre type de publication personnalisé nouvellement enregistré renverront une erreur 404.
On peut soutenir que l'utilisateur final pourrait également accéder manuellement à Paramètres> Liens permanents de wp-admin et cliquer sur "Enregistrer les modifications" pour obtenir le même résultat.
Du point de vue de l'utilisateur, avoir le plugin qui le fait tout seul en exécutant flush_rewrite_rules()
à l'activation est beaucoup plus pratique!
C'est effectivement un appel coûteux, mais cela ne signifie pas que vous ne devriez pas le faire du tout. Cela signifie que cela ne devrait être fait que lorsque cela est nécessaire - et cela se trouve sur les crochets d'activation et de désactivation de votre plugin - et non à tout moment.
Vous ne souhaitez absolument PAS exécuter flush_rewrite_rules()
à partir d'une fonction liée à 'init'
par exemple.
Il est nécessaire juste une fois pour les nouveaux permaliens de type post. C'est mieux d'utiliser quand le plugin est activé ou désactivé