J'ai un type de portfolio personnalisé (portfolio slug) dans mon thème et tout fonctionne bien sauf une chose. Lorsque les gens créent une page avec une portion de portefeuille, par exemple: example.com/portfolio, le thème pense que je veux utiliser la page d'archive de type de publication personnalisée, pas ma page créée dans l'éditeur.
Puis-je en quelque sorte "réserver" le portefeuille de slugs lorsque les pages sont enregistrées pour être sûr qu'il ne sera jamais utilisé, peut-être renommé page de portfolio?
Mon projet utilise les méthodes décrites dans ce tutoriel, voici le conflit auquel je fais référence:
"Au-delà d'avoir à patcher le code, il y a un autre problème ici en ce que vous ne pouvez pas appeler votre slug de page de la même manière que votre slug de type de publication personnalisé. Considérez votre slug de type de publication personnalisé comme un mot clé réservé; cependant, vous pouvez faire le titre de votre page le même nom que votre slug de type de publication personnalisé tant que votre slug de page est quelque chose de différent. " - http://wp.tutsplus.com/tutorials/custom-post-type-pagination-chaining-method/
Merci pour tout conseil!
la source
Réponses:
Les 2 filtres suivants vous permettent de vous connecter lorsque WordPress vérifie le slug et se trouvent dans la fonction wp_unique_post_slug () dans le fichier wp-includes / post.php.
Il existe 2 filtres, un pour les publications hiérarchiques et un pour les publications non hiérarchiques. Le filtre hiérarchique fournit l'ID du parent du post, donc si $ post_parent est 0, vous savez qu'il s'agit d'un post "de base".
Les filtres transmettent également le $ post_type si vous souhaitez ajouter des types de publication spécifiques à votre logique.
En renvoyant "true", vous dites à WordPress que ce slug est mauvais, donc WordPress ajoute un suffixe, tout comme il le ferait si vous essayiez de nous un nom / slug de message déjà pris.
la source
Créez une page avec un slug de «portfolio» et rendez-la «privée». Il sera caché au public lors de la réservation de la limace à un usage ultérieur.
la source
A rencontré exactement ce problème lors de l'examen d'un problème de pagination. Nous avons une page d'accueil de News (slug "news") et la pagination a échoué ... les tentatives pour accéder à / news / page / 2 / ont toujours abouti à '404 - Not Found'.
Le problème s'est avéré être que notre type personnalisé News avait également reçu le slug "news". En changeant ce dernier (par exemple en "news_archive"), le problème a été corrigé. Cela a laissé les références URL des nouvelles d'origine inchangées. La modification du slug de la page d'accueil de News a également fonctionné, mais tous les URL incorporaient le slug modifié.
la source