Réécriture de l'url de l'auteur
1 réponses
- votes
-
- 2010-12-13
En supposant que vous utilisez destypes depublicationpersonnaliséspour des chansons,des livres,etc.
function add_rewrite_rules($rules) { $newrules['author/([^/]+)/songs/?$'] = 'index.php?post_type=songs&author=$matches[1]'; $newrules['author/([^/]+)/songs/page/?([0-9]{1,})/?$'] = 'index.php?post_type=songs&locations=$matches[1]&paged=$matches[2]'; $rules = $newrules + $rules; return $rules; } function flushRules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } add_filter('rewrite_rules_array', 'add_rewrite_rules'); /* This function should only really be run once per change of rules - comment out */ add_filter('init','flushRules');
Essayez les chaînes de requête ci-dessus "index.php?post_type=chansons & amp; author=username"et assurez-vous d'obtenir labonne liste d'articles que vous recherchez sur votre site (vous devrezpeut-être désactiver lespermalienspour lestester).
Ensuite,vouspouvez ajouter les règles à lafonction (enprenantnote de la règlepaginéepour chaquetype depublication).
Jefaisexactement cela sur un siteen lignemaintenant,c'est doncpossible -ilfautjuste unpeu depatiencepour que les règles soient correctes.
Si vousn'utilisezpas detypes depublicationpersonnalisés,vouspouvezmodifier les chaînes de requête ci-dessus depost_type=xxx àtaxonomy=tagname outout ce dont vous avezbesoinpour obtenir la liste souhaitée.
Assuming you are using custom post types for songs, books etc:
function add_rewrite_rules($rules) { $newrules['author/([^/]+)/songs/?$'] = 'index.php?post_type=songs&author=$matches[1]'; $newrules['author/([^/]+)/songs/page/?([0-9]{1,})/?$'] = 'index.php?post_type=songs&locations=$matches[1]&paged=$matches[2]'; $rules = $newrules + $rules; return $rules; } function flushRules() { global $wp_rewrite; $wp_rewrite->flush_rules(); } add_filter('rewrite_rules_array', 'add_rewrite_rules'); /* This function should only really be run once per change of rules - comment out */ add_filter('init','flushRules');
Try the query strings above "index.php?post_type=songs&author=username" and make sure you get the correct post listing you are after on your site (you might need to disable permalinks to test them).
Then you can add the rules in to the function (taking note of the paged rule for each post type).
I am doing exactly this on a live site now, so it is possible - just requires a bit of patience to get the rules correct.
If you are not using custom post types you can change the query strings above from post_type=xxx to taxonomy=tagname or whatever you need to get the listing you want.
-
Merci @Chris!Leproblèmeest queje n'aipas detaxonomies ou depost_types ... Ces chansons,films,livres sontinsérés dans unetablemysql séparée (parce que c'est un système "ajouter auxfavoris"et je veux afficher les chansons,films,livrespréféréspour chacunauteur)Thanks @Chris! The problem is i don't have taxonomies or post_types... Those songs, movies, books are inserted into a separate mysql table (because is an "add to favorites" system and I want to display favorite songs, movies, books for each author)
- 0
- 2010-12-13
- Robert
-
@Robert -mettez àjour votre questionpourexpliquer la structure de cestableaux - comment diable étions-nous censés savoir cela à l'origine !?@Robert - update your question to explain the structure of these tables - how on earth were we meant to know that originally!?
- 0
- 2010-12-13
- TheDeadMedic
-
@TheDeadMedic: questionmise àjour!@TheDeadMedic: question updated!
- 0
- 2010-12-13
- Robert
-
Réponsetrouvéeici: http://wordpress.stackexchange.com/questions/4243/how-to-set-up-sub-categories-for-author-pagesAnswer found here: http://wordpress.stackexchange.com/questions/4243/how-to-set-up-sub-categories-for-author-pages
- 0
- 2010-12-13
- Robert
Le lienpermanent de l'auteurpar défautest:
Commentpuis-jefaire quelque chose comme ça?
Si quelqu'un visite le lienpermanent des chansons,wp devrait afficher les chansons de l'auteur respectif.Si quelqu'un visite des livrespermalien,wp devrait afficher les livres de l'auteur respectif,et ainsi de suite!Uneidée de commentpuis-jefaire cela!?
Modification ultérieure tablemySQL:favoris