カスタム投稿タイプとその分類法のパーマリンク構造を変更するにはどうすればよいですか?
-
-
最後の質問で示したソリューションは、正しく実装されていれば、そのように機能するはずです.唯一のことは、html部分を取得できないことですThe solution I gave in the last question should have worked that way, if you implemented it correctly. The only thing is you can't get the html part
- 1
- 2011-09-20
- Manny Fleurmond
-
はい.ただし、特定のパスにロックされているため、サブカテゴリまたはそれ以上がない場合は、カテゴリ/サブカテゴリ/ページのみになります.これはより動的です.Yes but it was locked to a specific path, so only category/subcategory/page while there might not be subcategories or even more. This is more dynamic.
- 0
- 2011-09-20
- Mark
-
または私はそれを適切に実装しませんでした;)Or I did not implement it properly ;)
- 0
- 2011-09-20
- Mark
-
3 回答
- 投票
-
- 2011-09-20
わかりました.解決策があるかもしれません.これがこれを達成するための正しい方法であるかどうかはわかりませんが、今のところ、それが機能しているように見える唯一の方法です.
add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); function mmp_rewrite_rules($rules) { $newRules = array(); $newRules['portfolio/(.+)/(.+?).html$'] = 'index.php?project=$matches[2]'; $newRules['portfolio/(.+)/?$'] = 'index.php?project_category=$matches[1]'; return array_merge($newRules, $rules); } add_filter('request', 'mmp_rewrite_request'); function mmp_rewrite_request($vars) { if (isset($vars['project_category'])) { if (strpos($vars['project_category'], '/') !== false) { $categories = explode('/', $vars['project_category']); $vars['project_category'] = $categories[count($categories) - 1]; } } return $vars; }
Ok I think I might have a solution. I have no idea if this is the right way to accomplish this, but as for now it's the only thing that seems to work.
add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); function mmp_rewrite_rules($rules) { $newRules = array(); $newRules['portfolio/(.+)/(.+?).html$'] = 'index.php?project=$matches[2]'; $newRules['portfolio/(.+)/?$'] = 'index.php?project_category=$matches[1]'; return array_merge($newRules, $rules); } add_filter('request', 'mmp_rewrite_request'); function mmp_rewrite_request($vars) { if (isset($vars['project_category'])) { if (strpos($vars['project_category'], '/') !== false) { $categories = explode('/', $vars['project_category']); $vars['project_category'] = $categories[count($categories) - 1]; } } return $vars; }
-
リクエストフィルターは、カテゴリ(実際には用語)と投稿を尋ねている場合にフィルターをかけるための良い方法です.投稿がカテゴリ、サブカテゴリにあるかどうかに関係なく、1つの書き換えルールのみを追加して投稿ページを取得できます.The request filter is a good way to filter if we're asking a category (term in fact) and a post. It allows adding only one rewrite rule and get post page whether if post is in a category, a subcategory or not at all.
- 0
- 2018-10-30
- ZalemCitizen
-
- 2014-11-10
2つの異なる方法:
*この投稿の下部にあるメモを参照してください.
たとえば、次のようなパーマリンク構造が必要です.
/MAIN_CATEGORY/SUB_CAT_2/Another_SUBCAT/my-post最初は、パーマリンクを/%category%/%postname%に設定する必要がある場合があります.次に...
方法1:
標準カテゴリ(
MAIN_CATEGORY
、SUB_CAT_1
、など
)を作成し、このパラメータを含めてCUSTOM POSTを登録します:'taxonomies'=> array( 'category' ..)
そして次のコードを使用してパーマリンクを変更します: https://wordpress.stackexchange.com/a/195643/33667
次に、CUSTOM POSTを公開した後(カテゴリの下に添付されている場合)、URLは次のようになります.
example.com/MAIN_CATEGORY/SUB_CAT_1/my-post
方法2:
(psこのメソッド 推奨されない 数百または数千の投稿を公開する予定です)
次のパラメータを含めて、カスタムPOST(
MAIN_CATEGORY
という名前)を登録します."supports"=> array( 'page-attributes'...... "階層"=>本当、
次に、次のようなカスタム投稿を公開します:
(つまり、SUB_CAT_2、SUB_CAT_1 ..
という名前のカスタム投稿をいくつか公開します.その後、別の投稿を公開するときに、SUB_CAT_2
親として.
p.s.
1)初心者の場合は、次を確認してください: カスタムPOSTを登録 およびTAXONOMYを使用したカスタム投稿の登録
2)サブレベルの検索機能が必要な場合は、カスタム検索クエリ2 Different Methods:
*See notes in the bottom of this post.
for example, you want to have such permalink structure:
/MAIN_CATEGORY/SUB_CAT_2/Another_SUBCAT/my-postAt first, you may need to set permalinks to /%category%/%postname%. Then...
METHOD 1:
create STANDARD categories (
MAIN_CATEGORY
,SUB_CAT_1
,and etc..
) , and register the CUSTOM POST, including this parameter:'taxonomies' => array('category'..)
and use this codes to change permalinks: https://wordpress.stackexchange.com/a/195643/33667
Then, after publishing a CUSTOM POST (if attached under a category), URL will be:example.com/MAIN_CATEGORY/SUB_CAT_1/my-post
METHOD 2:
(p.s. this method is not advised if you plan to publish hundreds or thousands of posts)
register the CUSTOM POST (named
MAIN_CATEGORY
), including these parameters:"supports" => array('page-attributes'...... "hierarchical" => true,
then, publish custom posts like this:
(i.e. publish several custom posts, namedSUB_CAT_2, SUB_CAT_1..
. After then, when you publish another post, but chooseSUB_CAT_2
as parent.
p.s.
1) If you are newbie, review: Register CUSTOM POST and Registering CUSTOM POST with TAXONOMY
2) if you will need search functionality for sub-levels, then use custom search query -
- 2016-04-07
何時間も頭を叩いた後、このプラグインは非常に役に立ちました.
https://wordpress.org/plugins/custom-post-type-パーマリンク/
以下は、提供されるオプションのスクリーンショットです.
After banging my head for hours, I found this plugin very helpful.
https://wordpress.org/plugins/custom-post-type-permalinks/
Below is the screen shot of options it gives.
これは以前の質問の再投稿ですが、これを完全に解決できるように、ここでさらに詳しく説明したいと思います.
繰り返しになりますが、(通常の)投稿では、パーマリンクを変更するのは、[設定]> [パーマリンク]に移動し、広く使用されている
%category%/%postname%.htmlなどの好きなものに変更するのと同じくらい簡単です.コード>.これはすべて機能します.これがカスタム投稿タイプと同じくらい簡単で、分類法でもある場合.
これが私が達成したいことです.
これまでに得たものは次のとおりです:
custom_post_type
とtaxonomy
project_category を作成しました.post_type=project
投稿を一覧表示するページテンプレートを提供しました.ページのパーマリンクに.htmlを追加するにはどうすればよいですか? http://mywordpress.com/portfolio にリンクするようになりましたが、 http://mywordpress.com/portfolio.html .これで最初の問題が解決するはずです.portal/(CATEGORY PATH FROM TOP TO CHILD)/post.html
です.私はまだこの時点で立ち往生しています.どういうわけか、最後のカテゴリをパスに追加して、それをproject_category に渡す必要があると思います.これにより、適切に処理できるtaxonomy.phpファイルが作成されます.%postname%.html
と関係があるはずです.私の問題が明確であり、この問題に取り組むのに役立つ勇敢な開発者がいて、すでに4日間忙しくしていることを願っています!