投稿の記事詳細の場合のみ参考に載せておきます。
カテゴリーや年月アーカイブなども同様の処理を行う必要があります。
function custom_post_rewrite_rules( $post_rewrite ) {
if ( $post_rewrite ) {
$custom_rules = array();
$prefix = 'blog/';
foreach ( $post_rewrite as $key => $post_rule ) {
$custom_rules[ $prefix . $key ] = $post_rule;
}
$post_rewrite = $custom_rules;
}
return $post_rewrite;
}
add_filter( 'post_rewrite_rules', 'custom_post_rewrite_rules' );
function custom_post_rewrite_structure( $permalink, $post ) {
if ( $permalink && $post->post_type == 'post' ) {
$permalink = '/blog' . $permalink;
}
return $permalink;
}
add_filter( 'pre_post_link', 'custom_post_rewrite_structure', 10, 2 );
投稿(post)は普通のパーマリンク設定にしておいて、
カスタムポストタイプに、Custom Post Type Permalinks を使う方法じゃダメですかね?
ちょうどやったことあるので。
通常のパーマリンク設定
/blog/%year%/%monthnum%/%day%/%postname%/
※カテゴリーアーカイブや日付アーカイブも /blog/ 以下で表示されます。
Custom Post Type Permalinks 有効化後
カスタム投稿タイプ(news)
/%year%/%monthnum%/%day%/%postname%/
実際には http://example.com/news/2013/03/24/hogehoge/
カスタム投稿タイプ(products)
/%postname%/
実際には http://example.com/products/fugafuga/
> jim912様
いつもお世話になっております。
参考ソース大変ありがとうございます。
しかしながら、/blog/の後のカテゴリーが未分類になってしまいました。
また、アーカイブについてソースを追って理解して対応しようと試みましたが、
今の自分の力量&現状使える時間でクリアする事は不可能だと判断しました。
専門的な内容ですので、あまり無料で教えていただくのも申し訳ありませんので、
状況に応じて別途有償にてご相談させていただくかもしれません。
その際は何卒よろしくお願いいたします。
> gatespace様
毎度お世話になります。
Custom Post Type Permalinks は既に試していたのですが、
・固定ページにもディレクトリ名が追加され・・・ますよね?
・他の投稿タイプはディレクトリ名(投稿タイプのスラッグ)を追加したくない
という事で上手く出来ませんでした・・・。
・固定ページにもディレクトリ名が追加され・・・ますよね?
post_type = page なら追加されません。
カスタム投稿タイプで 階層アリ(固定ページ風)にしてあるのまでは検証してないですが。
・他の投稿タイプはディレクトリ名(投稿タイプのスラッグ)を追加したくない
カスタム投稿タイプのパーマリンクに投稿タイプのスラッグを入れないとなると、
他のコンテンツと重複しないようにする工夫が必要ですが、
リライトルールでなんとかなりませんかね?