> Wordpress > Wordpressで投稿のリライトスラッグを変更してアーカイブと記事のパーマリンクに任意の文字列を設定する方法
Wordpressで投稿のリライトスラッグを変更してアーカイブと記事のパーマリンクに任意の文字列を設定する方法

Wordpressで投稿のリライトスラッグを変更してアーカイブと記事のパーマリンクに任意の文字列を設定する方法

Wordpressでは、「投稿(post)」の投稿タイプのアーカイブがデフォルトで無効になっています。
また、「投稿」のパーマリンクのみ独自のルールを指定することができません。

カスタム投稿タイプのアーカイブでは、rewrite_slugを変更することができますが、投稿(post)はデフォルトで搭載されている投稿タイプなので、rewrite_slugを変更するには下記の処理が必要です。

例えば、下記のように設定してみます。

 設定内容 設定結果
投稿一覧(アーカイブ)のURL https://[yourdomain.com]/information
投稿の記事のパーマリンク https://[yourdomain.com]/information/記事ID

上記のように変更するには、function.phpに下記の通り加筆します。

/**
 * 投稿の設定変更
 * post_has_archive()
 *
 * @param object $args args.
 * @param string $post_type post_type.
 * @return object $args args.
 */
function post_has_archive( $args, $post_type ) {
    if ( 'post' === $post_type ) {
        $args['rewrite']     = true;
        $args['has_archive'] = 'information';
    }
    return $args;
}
add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );

/**
 * 投稿のパーマリンク変更.
 * add_article_post_permalink()
 *
 * @param string $permalink permalink.
 * @return string $permalink permalink.
 */
function add_article_post_permalink( $permalink ) {
    $permalink = '/information' . $permalink;
    return $permalink;
}
add_filter( 'pre_post_link', 'add_article_post_permalink' );

/**
 * 投稿のリライトルール変更
 * add_article_post_rewrite_rules()
 *
 * @param object $post_rewrite post_rewrite.
 * @return string $return_rule return_rule.
 */
function add_article_post_rewrite_rules( $post_rewrite ) {
    $return_rule = array();
    foreach ( $post_rewrite as $regex => $rewrite ) {
        $return_rule[ 'information/' . $regex ] = $rewrite;
    }
    return $return_rule;
}
add_filter( 'post_rewrite_rules', 'add_article_post_rewrite_rules' );

上記をfunction.phpに加筆した後、管理画面→設定→パーマリンク設定で、なにも変更しないで構わないのでパーマリンク設定を更新してください。
こうすることでパーマリンク設定がリフレッシュされ、投稿のパーマリンクを変更することができます。

参考リンク

Simple Colors「投稿の個別ページのみパーマリンクを変更する方法」
http://www.warna.info/archives/2721/

GRAPHIC LAB「『投稿』タイプの個別ページのパーマリンクに任意の文字列を追加する方法」
https://datalibraries.info/wordpress-post-rewrite-rules/

この記事が気に入ったらシェアしてください

関連記事

Wordpressのカスタム投稿タイプで一覧・詳細画面を作らない方法

Wordpressのプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpressのプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

Comment Form

コメント投稿はこちらをクリックしてください
  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)