Comment puis-je avoir un post (ou post personnalisé) avec une URL définie:
www.test.com/category/post-name
et une URL enfant faisant référence à une section spécifique de ce post
www.test.com/category/post-name/sub-url
sans être obligé de créer une publication spécifique liée à cette URL enfant?
J'ai un post avec l'URL
www.test.com/category/post-name
provient du fichier content-product.php
et je veux avoir une URL enfant comme
www.test.com/category/post-name/details
provient du fichier content-product-details.php
qui fait référence/rappelle uniquement une section/partie de la publication.
En quelques mots, existe-t-il un moyen de créer la structure indiquée? Ou dois-je créer manuellement pour chaque message autant de sous-messages que d'URL enfant que je souhaite avoir?
Je viens de terminer quelque chose comme ça (avec l'aide des gens de ce site).
Tout d’abord, vous devez ajouter le point de terminaison de réécriture à vos fonctions:
function wpa_read_endpoint(){
add_rewrite_endpoint( 'sub-url', EP_PERMALINK);
}
add_action( 'init', 'wpa_read_endpoint' );
Assurez-vous d’aller ensuite dans la section permaliens de l’administrateur et enregistrez-le pour actualiser les paramètres de permalien.
Ajoutez ensuite du code pour changer de modèle en fonction des vars de requête:
function wpa_read_template( $template = '' ) {
global $wp_query;
if( ! array_key_exists( 'sub-url', $wp_query->query_vars ) ) return $template;
$template = locate_template( 'templateFile.php' );
return $template;
}
add_filter( 'single_template', 'wpa_read_template' );
Quelques notes:
Bonne chance!
Je dirais que ce que vous devez approfondir est le Rewrite API et points de terminaison , pour commencer, voir:
De plus, utilisez la recherche ici, car il existe déjà des questions similaires, ce qui vous aidera certainement.
Dernière remarque, faire de telles choses manuellement peut prendre beaucoup de temps. Je préférerais donc l’automatiser. À la fin, il s’agit probablement d’une évaluation entre investir temps/argent maintenant et avantages ultérieurs - c’est à vous de décider.