お問い合わせはコチラから

カスタム投稿タイプと投稿のパーマリンク設定を別にする

サイト運営

カスタム投稿を使ったサイトで投稿のパーマリンク設定とカスタム投稿のパーマリンク設定を分けたい時があると思います。

カスタム投稿はslugが指定してあるけど、投稿には記事のタイトルがそのまま入ってるからパーマリンク設定で機械的に書き換えたい、というようなケースです。

そんな時に、投稿はpost-%postid%というようなパーマリンク設定にして、カスタム投稿タイプは%postname%にしたとします。

そうするとカスタム投稿タイプのパーマリンクのパーマリンクに含まれるpost_typeの部分にも影響して書き換わってしまいます。

そんなことから、カスタム投稿タイプと投稿のパーマリンクを別々に設定する方法をご紹介します。

投稿はpost-%postid%に、カスタム投稿は%postname%にしたい

custom-post-type-permalinksプラグインは使えるか?

custom-post-type-permalinksプラグインは、今回の用途では使えませんでした。

カスタム投稿の個別ページのパーマリンクを変更できますが、投稿タイプ名が全体のパーマリンク設定の影響を受けてしまいます。

例えば、投稿はpost-%postid%というようなパーマリンク設定にして、カスタム投稿タイプは%postname%にしたとします。

そうすると、カスタム投稿のパーマリンクが以下のようになってしまいます。

/post-カスタム投稿名/%postname%/

というようにカスタム投稿名になぜか”post-“が追加されてしまうのです。この部分はいじれないのでこのプラグインの問題ではないのですが、結果的にいじれないのでこのプラグインは無力です。

Custom Post Type Permalinks
Edit the permalink of custom post type.

フックでカスタマイズすれば実現可能

パーマリンク設定は、投稿名(%postname%)にします。

投稿は、投稿名にしたくないのでカスタマイズします。

post_linkフィルターは、投稿(post)のみに影響します。

post_link – Hook | Developer.WordPress.org
Filters the permalink for a post.

もしカスタム投稿側を変更したい場合は、post_type_linkフィルターを使用します。

post_type_link – Hook | Developer.WordPress.org
Filters the permalink for a post of a custom post type.
<?php
/*	投稿のパーマリンク設定
-----------------------------------------------------*/
//カスタム投稿タイプのパーマリンクを投稿IDに変更する。
add_filter('post_link', 'generateCustomPostLink', 1, 2);
add_filter('rewrite_rules_array', 'addRewriteRules');

function generateCustomPostLink($link, $post){
 //投稿IDに書き換えたパーマリンク文字列を返す
  return home_url('/post-'.$post->ID);
}

//投稿IDに書き換えたパーマリンクに対応したクエリルールを追加
function addRewriteRules($rules){
 $new_rule = array(
  'post-([0-9]+)/?$' => 'index.php?post_type=post&p=$matches[1]'
 );
 //ルール配列に結合
 return $new_rule + $rules;
}

参考:https://www.webdesignleaves.com/pr/wp/wp_permalink_rewrite.html

参考:https://libre-co.com/wordpress/custom_taxonomy_permalink/

まとめ

パーマリンク設定は、カスタマイズすると500エラーなどの原因や404になったりますので、自己責任で行いましょう。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました