web-dev-qa-db-fra.com

Comment ajouter un espace réservé URL personnalisé aux archives de l'auteur?

Je travaille avec un client qui dispose d'un site de répertoire qui permet aux utilisateurs de créer des comptes, puis des listes d'éléments à partir du répertoire. À l'heure actuelle, chaque fois qu'un utilisateur crée un compte, il obtient une URL de profil telle que:

domain.com/member/%author%

Ce qui est accompli avec un simple:

$wp_rewrite->author_base = 'member';

Maintenant, je dois permettre à ces utilisateurs de créer une liste, ce qui devrait aboutir à ce type de structure d'URL:

domain.com/member/%author%/%list%

Jusqu'à présent, je crée ces listes en tant que types de publication personnalisés. Tous les articles et les messages Stack Exchange que je vois sur WP_Rewrite ne couvrent pas une réécriture d'URL comme celle-ci. Est-ce possible? Avez-vous des indications sur la façon dont cela pourrait être fait?

5
james

Option 1

Je suppose que le type de message personnalisé génère une URL quelque chose comme ceci

domain.com/%custom-post-type%/%list%

Donc, vous pouvez l'écrire pour qu'il ressemble à ... puisque l'URL principale n'a pas d'auteur avant le type personnalisé, vous devez le faire via une fonction puisque les auteurs sont dynamiques

RewriteRule ^members/%author%/(.*)$ domain.com/%custom-post-type%/$1

Cela ne modifie pas spécifiquement les URL de type publication personnalisé, mais vous devriez pouvoir le modifier selon vos besoins https://Gist.github.com/4336843

Option 2

ou peut-être si l'URL ci-dessous et le type de message personnalisé ne changent pas, vous devriez pouvoir l'implémenter dans .htaccess et prendre l'auteur en compte lors de la réécriture.

domain.com/members/%author%/%custom-post-type%/%list%

RewriteRule ^members/(.*)/(.*)$ domain.com/members/$1/%custom-post-type%/$2

Ceci a une très bonne explication sur la réécriture d'URL en général http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/

Option 3

Vous pouvez également réécrire l'intégralité de l'URL de type publication personnalisée si vous ne l'utilisez nulle part ailleurs ... car

register_post_type(); accept 'rewrite' => array ($slug)

plus d'informations

http://shibashake.com/wordpress-theme/custom-post-type-permalinks

http://shibashake.com/wordpress-theme/custom-post-type-permalinks-part-2

1
MonteCristo

add_rewrite_rule () devrait être la réponse http://codex.wordpress.org/Rewrite_API/add_rewrite_rule

ou vous pouvez filtrer manuellement author_rewrite_rules

0
AriePutranto

J'espère que le plugin suivant vous aidera davantage: http://wordpress.org/extend/plugins/permalink-editor/

Ce plugin va réécrire le permalien à votre guise sans aucune connaissance en matière de codage.

0
jothikannan