著者のURL書き換え
1 回答
- 投票
-
- 2010-12-13
曲や本などにカスタム投稿タイプを使用していると仮定します:
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');
「index.php?post_type=songs& author=username」の上のクエリ文字列を試して、サイトで目的の正しい投稿リストを取得していることを確認してください(テストするにはパーマリンクを無効にする必要がある場合があります).
次に、ルールを関数に追加できます(各投稿タイプのページルールに注意してください).
私は現在ライブサイトでこれを正確に行っているので、それは可能です-ルールを正しくするために少しの忍耐が必要です.
カスタム投稿タイプを使用していない場合は、上記のクエリ文字列をpost_type=xxxからtaxonomy=tagname、または必要なリストを取得するために必要なものに変更できます.
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.
-
ありがとう@Chris!問題は、分類法やpost_typesがないことです...これらの曲、映画、本は別のmysqlテーブルに挿入されます(「お気に入りに追加」システムであり、それぞれのお気に入りの曲、映画、本を表示したいため)著者)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-これらのテーブルの構造を説明するために質問を更新します-一体どうやってそれを最初に知るつもりだったのですか!?@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:質問が更新されました!@TheDeadMedic: question updated!
- 0
- 2010-12-13
- Robert
-
ここにある答え: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
デフォルトの作成者のパーマリンクは次のとおりです:
どうすればこのようなことができますか?
誰かが曲のパーマリンクにアクセスした場合、wpはそれぞれの作者の曲を表示する必要があります.誰かが本のパーマリンクにアクセスした場合、wpはそれぞれの著者の本を表示する必要があります.どうすればこれを行うことができますか!?
後の編集 mySQLテーブル:favs