Existe-t-il un moyen d'ajouter l' .html
extension aux types de publication personnalisés sans plugin ?
Pour les messages que je peux utiliser /%postname.html
sur les paramètres de permalien
Pour les pages que je peux utiliser:
add_action('init', 'change_page_permalink', -1);
function change_page_permalink() {
global $wp_rewrite;
if ( strstr($wp_rewrite->get_page_permastruct(), '.html') != '.html' )
$wp_rewrite->page_structure = $wp_rewrite->page_structure . '.html';
}
Pour les types de publication personnalisés ???
Y a-t-il un morceau de code similaire à celui ci-dessus qui me permet de modifier ou d'ajouter l' .html
URL du type de message personnalisé?
custom-post-types
permalinks
url-rewriting
urls
user983248
la source
la source
function post-type_permalink
jettera une erreur. Si vous ne recevez pas cette erreur, vous avez un problème douloureux avec vos paramètres de débogage. Veuillez également retravailler votre question avec les bonnes intentions sur les lignes. Merci./$postname.html
pour les messages, comment puis-je utiliser la même chose pour les types de messages personnalisés.-
ne fonctionne pas dans les noms de fonction ...Réponses:
Cela semble fonctionner:
Créez les règles de réécriture comme
post-type/post-name.html
. Vous pouvez utiliser des tableaux pour créer les règles d'un ensemble de types de publication au lieu de le faire pour chacun d'eux.Formatez la nouvelle structure de permalien pour ces types de publication.
Et puis arrêtez de rediriger les URL canoniques pour supprimer la barre oblique de fin. Cela pourrait nécessiter un peu plus de travail, car vous souhaiterez probablement conserver la redirection dans la plupart des cas.
Comme d'autres l'ont dit ici, après avoir fait ce qui précède, vous devrez vider les règles, et c'est possible en visitant la
options-permalink.php
page d'administration dansDashboard -> Settings -> Permalinks
.la source
wpse_59024_
(ID de question) pour éviter les conflits de copie / pâtes;). . . Et a l'avantage supplémentaire de savoir à quelle réponse appartient ce code dans notre bibliothèque d'extraits de code. . . . . +1 Spot on!post_type_link
filtreVous pouvez ajouter une règle de réécriture pour cela qui remplace les permaliens intégrés, par exemple pour un type de publication personnalisé "produit" ...
(N'oubliez pas de vider vos règles en ré-enregistrant vos permaliens ou en utilisant
flush_rules
les notes @toscho ci-dessus).Avertissements
the_permalink()
utiliseraient ceci, donc vous pourriez avoir à ajouter un filtre pourpost_link
attraper ces liens. Vous pouvez également ajouter auredirect_canonical
filtre pour rediriger les permaliens par défaut, afin que / product / foo et / product / foo / redirect vers /product/foo.html.la source
Si vous préférez un plugin WordPress pour gérer le travail pour vous, consultez les permaliens de type de publication personnalisés dans le référentiel de plugins WordPress. Testé sur WordPress 3.4.1 et cela fonctionne parfaitement.
Après avoir activé le plugin, accédez simplement à Dashboard -> Settings -> Permalinks. Vous pouvez ajouter des réécritures spécifiques pour chaque type de publication personnalisé enregistré.
la source
flush_rules()
ne doit être appelé que sur / activation car il est très lent. Vous pouvez vérifier$GLOBALS['wp_rewrite']->rules
si les règles sont déjà connues.