これは以前に行った質問の再投稿ですが、これを完全に解決できるようにするために、ここでさらに詳しく説明します。
繰り返しますが、(通常の)投稿ではパーマリンクを変更するのは設定>パーマリンクへ行くのと同じくらい簡単で、広く使われている%category%/%postname%.html
のようなあなたが好きなものにそれを変更することによってです。これはすべてうまくいきます。これがカスタム投稿タイプにとっても簡単で、分類法でもあるならば。
だからこれが私が達成したいものです。
私がこれまでに得たものは以下の通りです:
custom_post_type
とtaxonomy
project_category を作成しました。post_type = project
投稿をリストするページテンプレートを与えました。パーマリンクのページに.htmlを追加するにはどうすればいいですか? http://mywordpress.com/portfolio.html が必要ですが、 http://mywordpress.com/portfolio にリンクしています。これで最初の問題は解決するはずです。portfolio/(CATEGORY PATH FROM TOP TO CHILD)/post.html
です。私はまだこの時点で立ち往生しています。どういうわけか最後のカテゴリをパスに追加して project_category に沿って渡すと、taxonomy.phpファイルが正しく処理されるはずです。%postname%.html
と関係があるはずです。私の問題がはっきりしていること、そして私がこの問題に取り組むのを助ける勇敢な開発者がいることを願っています。
わかりました私は解決策があると思います。これがこれを達成するための正しい方法であるかどうか私にはわかりませんが、今のところそれがうまくいくように思われる唯一のものです。
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;
}
何時間も頭を叩いた後、このプラグインはとても役に立ちました。
https://wordpress.org/plugins/custom-post-type-permalinks/ /
以下はオプションのスクリーンショットです。
*この記事の下部にあるメモを参照してください。
たとえば、次のようなパーマリンク構造が必要です。
/MAIN_CATEGORY/SUB_CAT_2/Another_SUBCAT/my-post
最初の では、パーマリンクを /%category%/%postname% に設定する必要があるかもしれません。それで….
sTANDARDカテゴリ(MAIN_CATEGORY
、SUB_CAT_1
、and etc..
)を作成し、このパラメータを含むCUSTOM POSTを登録します。
'taxonomies' => array('category'..)
そして、次のコードを使ってパーマリンクを変更してください: https://wordpress.stackexchange.com/a/195643/33667
次に、CUSTOM POST(カテゴリの下に添付されている場合)を公開すると、URLは次のようになります。example.com/MAIN_CATEGORY/SUB_CAT_1/my-post
(このメソッドは 推奨されません あなたが数百または数千の投稿を公開する予定がある場合)
以下のパラメータを含めて、CUSTOM POST(名前付きMAIN_CATEGORY
)を登録します。
"supports" => array('page-attributes'......
"hierarchical" => true,
その後、このようなカスタム投稿を公開してください:
(つまり、いくつかのカスタム posts をSUB_CAT_2, SUB_CAT_1..
という名前で公開します。その後、別の投稿を公開する場合は、親としてSUB_CAT_2
を選択します。
p.s.
1)初心者の場合は、 CUSTOM POST および TAXONOMYへのCUSTOM POSTの登録
2)サブレベルの検索機能が必要な場合は、 カスタム検索クエリを使用します