[設定]> [パーマリンク]で、投稿用のカスタム構造を次のように設定します。
/%category%/%post_id%-%postname%
これは私の投稿の大部分ではうまくいきますが、post_idを削除したいカテゴリが1つあります。
/%category%/%postname%
カテゴリがMOUSEでpost-idが123、postname(slug)がmy-great-mouse-postの場合、パーマリンクは正しく次のようになります。
mydomain.com/mouse/123-my-great-mouse-post
しかし、カテゴリがDOGの場合、私はpost-idを使いたくないので、このようになります。
mydomain.com/dog/my-great-dog-post
私は自分のfunctions.phpやプラグインでアクションやフィルタを使う方法を理解していますし、add_rewrite_ruleを使いたいと思いますが、正規表現としての規則の書き方は複雑で理解できないので、混乱しています。
add_action('init', function()
{
add_rewrite_rule('^dog/([^/]+)/?$', 'index.php?cat=dog&name=$matches[1]', 'top');
}, 10, 0);
add_filter('post_link', function($post_link, $post, $leave_name = false, $sample = false)
{
if ( is_object_in_term($post->ID, 'category', 'DOG') ) {
$post_link = str_replace($post->ID . '-', '', $post_link);
}
return $post_link;
}, 10, 4);
functions.php
で試してください。それがあなたのために働くことを願っています!