これは簡単ではないでしょうか?!カスタム投稿タイプ/カスタム分類パーマリンク
-
-
好奇心から、これまでに何を試しましたか?Out of curiosity, what have you tried so far?
- 0
- 2012-01-30
- Matthew Boynes
-
この回答は私に最も近いものを取得しました-http://wordpress.stackexchange.com/questions/5308/custom-post-types-taxonomies-and-permalinks-しかし、それはページネーションでは機能せず、提案されたプラグインは機能しませんでしたどちらかThis answer got me the closest - http://wordpress.stackexchange.com/questions/5308/custom-post-types-taxonomies-and-permalinks - but then it didn't work with pagination and the suggested plugin didn't work either
- 0
- 2012-01-30
- fxfuture
-
かっこいい、私が尋ねてよかった、それは私に時間を節約しました!Cool, glad I asked, that saved me some time!
- 0
- 2012-01-30
- Matthew Boynes
-
1 回答
- 投票
-
- 2012-01-30
すでに行ったように、
この質問に関するアドバイスに従ってください.ただし、これをコードに追加してください: add_action( 'generate_rewrite_rules', 'fix_literature_category_pagination' ); function fix_literature_category_pagination( $wp_rewrite ) { unset($wp_rewrite->rules['literature/([^/]+)/page/?([0-9]{1,})/?$']); $wp_rewrite->rules = array( 'literature/?$' => $wp_rewrite->index . '?post_type=literature', 'literature/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?post_type=literature&paged=' . $wp_rewrite->preg_index( 1 ), 'literature/([^/]+)/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?literature_category=' . $wp_rewrite->preg_index( 1 ) . '&paged=' . $wp_rewrite->preg_index( 2 ), ) + $wp_rewrite->rules; }
最後に、[設定]> [パーマリンク]に移動し、[保存]をクリックします.それでも機能しない場合は、パーマリンクをもう一度保存してください.時々私はあなたがそれらを二度救わなければならないように感じるが、誰が知っている.とにかく、あなたがどうやって理解するか教えてください. Computer Science Standard Answer#1が適用されることに注意してください:それは私のために働きます ... ;-)
TMIの土地から...
参考までに、ページがデフォルトで機能しない理由は、WordPressがliterature/%literature_category%/%book%/%page%の書き換えルールを設定しているためです.あなたがそれについて考えるならば、感覚.したがって、デフォルトのパーマリンクには、次の順序で競合するルールがあります.
[literature/([^/]+)/([^/]+)(/[0-9]+)?/?$] => index.php?literature_category=$matches[1]&book=$matches[2]&page=$matches[3] [literature/([^/]+)/page/?([0-9]{1,})/?$] => index.php?literature_category=$matches[1]&paged=$matches[2]
ここで実際に行っているのは、後者の設定を解除して(そのままにしておくことはできますが、その後のすべての書き換えには、ページの読み込み時に実行する正規表現がもう1つあります)、これらの順序を変更して、最初に追加することだけです.配列.
おもしろい事実:「ページ」というタイトルの「本」があり、複数のページがある場合、この順序は競合し、後続のページは機能しません.
Follow the advice on this question as you did already, but add this to your code:
add_action( 'generate_rewrite_rules', 'fix_literature_category_pagination' ); function fix_literature_category_pagination( $wp_rewrite ) { unset($wp_rewrite->rules['literature/([^/]+)/page/?([0-9]{1,})/?$']); $wp_rewrite->rules = array( 'literature/?$' => $wp_rewrite->index . '?post_type=literature', 'literature/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?post_type=literature&paged=' . $wp_rewrite->preg_index( 1 ), 'literature/([^/]+)/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?literature_category=' . $wp_rewrite->preg_index( 1 ) . '&paged=' . $wp_rewrite->preg_index( 2 ), ) + $wp_rewrite->rules; }
Lastly, go to Settings > Permalinks and hit save. If it still doesn't work, save your permalinks again. Sometimes I feel like you have to save 'em twice, but who knows. Anyway, Let me know how you make out. Note that Computer Science Standard Answer #1 applies: It Works For Me... ;-)
From the land of TMI...
For reference, the reason why the pages don't work by default is that WordPress puts in a rewrite rule for literature/%literature_category%/%book%/%page%, which makes total sense if you think about it. So your default permalinks have these competing rules in this order:
[literature/([^/]+)/([^/]+)(/[0-9]+)?/?$] => index.php?literature_category=$matches[1]&book=$matches[2]&page=$matches[3] [literature/([^/]+)/page/?([0-9]{1,})/?$] => index.php?literature_category=$matches[1]&paged=$matches[2]
All we're really doing here is changing the order of these by unsetting the latter (we can keep it in, but then every rewrite thereafter has one more regex to run on page load) and adding it to the beginning of the array.
Fun fact: If you ever have a "book" entitled "page" and it has multiple pages, this order will conflict and its subsequent pages won't work!
-
おやおや、私の構文がここで間違っていることに気づきました.おかしなことに、それは私のために機能し、私がそれを修正すると、それは機能しません.私はそれを維持し、私がそれを理解したときに私の答えを更新します...Gosh, it just occurred to me that my syntax was wrong here. Funny enough, it works for me and when I fix it, it doesn't work. I'll keep at it and update my answer when I figure it out...
- 0
- 2012-01-30
- Matthew Boynes
-
マシューを助けてくれてありがとう.私はそれを試しましたが、残念ながらうまくいきませんでした.質問にさらに情報を追加しました.これにより、うまく説明できます.Thanks for your help Matthew. I tried that and unfortunately it didn't work. I've added more information to my question which hopefully explains it better!
- 0
- 2012-01-30
- fxfuture
-
そしてそれも役立つなら、ここにサイトへのリンクがあります-http://bit.ly/xvclETAnd if it also helps, here's a link to the site - http://bit.ly/xvclET
- 0
- 2012-01-30
- fxfuture
-
わかりました.混乱して申し訳ありません.そこに少し脳ガスがありました(最近いくつかの脳豆を持っていたに違いありません).私の答えは更新されました、そして再びそれは私のために働きます.パーマリンクを保存することを忘れないでください.Ok, my apologies for the confusion. Had a little brain gas there (must have had some brain beans recently). My answer has been updated, and again it works for me. Remember to save over your permalinks.
- 1
- 2012-01-30
- Matthew Boynes
-
パーマリンク構造に違いはないようです:(Doesn't seem to make any different to the permalink structure :(
- 0
- 2012-01-30
- fxfuture
-
わかりました、あなたの更新された質問を見ました.つまり、/literature/fiction/page/2が機能しないということではなく、/literature/page/2が機能しないということですよね?もしそうなら、それは簡単な修正です、私たちはレベルを上げて同じことをしますOh ok, I saw your updated question. So it's not that /literature/fiction/page/2 doesn't work, it's that /literature/page/2 doesn't work, is that right? If so, that's an easy fix, we'll do the same thing up a level
- 1
- 2012-01-30
- Matthew Boynes
-
マシュー、ありがとう.はい、文献/ページ/2は機能しません.しかし、あなたの更新された答えも機能しておらず、私の脳はさらに炒められています!私の文学分類法は「literature_category」と呼ばれていますが、書き直しは、私が取り組んでいたその答えに従って「literature」です.mysite.com/literatureには、投稿タイプ「literature」を照会するliterature.phpというページもあります.うーん、本当に迷ってしまいました!Thanks again Matthew. Yes, literature/page/2 doesn't work. However, your updated answer isn't working either and my brain is getting even more fried! My literature taxonomy is called 'literature_category' but the rewrite is 'literature' as per that answer I was working from. Also to note mysite.com/literature is a page called literature.php where it queries the post type 'literature'. Hmmm I'm feeling really lost!
- 0
- 2012-01-30
- fxfuture
-
[チャットでこのディスカッションを続けましょう](http://chat.stackexchange.com/rooms/2336/discussion-between-matthew-boynes-and-fxfuture)let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/2336/discussion-between-matthew-boynes-and-fxfuture)
- 1
- 2012-01-30
- Matthew Boynes
-
1つの小さな問題を除いて、サイトで完全に機能しています...私はパンくずリストXTを使用していますが、パンくずリストの「Literature」はmysite.com/literature/%literature_category%/にリンクしています.不正なリクエストエラーが生成されます.Working perfectly on the site, except for one minor issue... I'm using Breadcrumb Nav XT, and now 'Literature' in the breadcrumb trail links to mysite.com/literature/%literature_category%/ generating a bad request error
- 0
- 2012-01-30
- fxfuture
-
リンクされたブレッドクラムテンプレートを
文学 :) Fixed by changing the linked breadcrumb template to Literature :)- 0
- 2012-01-30
- fxfuture
-
パーマリンク設定ページの[保存]ボタンをクリックする必要はないと思います.ページにアクセスするだけで、書き換えルールがフラッシュされます.I don't think you need to click the Save button on the Permalink Settings page. Just visiting the page will flush the rewrite rules.
- 0
- 2012-10-30
- Ian Dunn
だから、これは私を完全に狂わせている.私はこれを修正するために何日も費やしましたが、これが非常に一般的なパーマリンク構造であるため、なぜこれがそれほど難しいのか理解できません!
何百もの回答と投稿を調べましたが、どれも問題を解決していないようです.
この構造が必要なだけです:
だから私は次のことを達成します:
何かを試すたびに404エラーが発生するか、認識が機能しません.
なぜこんなに難しいのかわかりません!
助けていただければ幸いです!
ありがとうございます
====================================================== ==================追加情報==================
現在、投稿の種類と分類を次のように登録しています:
両方を「literature」として登録すると、mysite.com/literatureページに404が表示されますが、パーマリンクは次のように表示されます:
mysite.com/literature/books/mybook
この質問に関するアドバイスに従った後-カスタム投稿タイプ、分類法、およびパーマリンク
これを関数に追加しました:
投稿タイプを
'slug' => 'literature/%literature_category%'
そして、分類法を'slug' => 'literature'
これは、
mysite.com/literature
でページ付けが機能しないことを除いて、うまく機能するため、次のURLで404エラーが発生します.mysite.com/literature/page/2/