web-dev-qa-db-ja.com

他のカスタム投稿タイプのURLに影響を与えずに、通常の投稿タイプのURLを変更することは可能ですか。

ジレンマ

カスタム投稿タイプがいくつかあります。

  • ポートフォリオ項目
  • お客様の声
  • よくある質問

これらのカスタム投稿タイプのURL構造は次のとおりです。

  • mysite.com/ portfolio /カスタム投稿の名前
  • mysite.com/ testimonial /カスタム投稿の名前
  • mysite.com/ faq /カスタム投稿の名前

私は私たちのブログエントリを制御するために通常の、組み込みのWordPress投稿タイプを使いたいと思います、そして各ブログエントリのためのURLを以下のようにしてもらいたいです:

  • mysite.com/ブログ /投稿名

[設定]> [パーマリンク]に移動して、URL構造を次のように調整します。

/blog/%postname%/

...それから私の投稿タイプの all のURLが影響を受けます。

  • mysite.com/ブログ/ポートフォリオ /カスタム投稿の名前
  • mysite.com/ blog/testimonial /カスタム投稿の名前
  • 等...

質問

私が知りたいのは、他のカスタム投稿タイプのURL構造に影響を与えずに、組み込みのWordPress投稿タイプのURL構造を調整することが可能かどうかです。

私が私のジレンマを解決するために見る唯一の他の方法は「Blog」と呼ばれる別のカスタム投稿タイプを作成することです。これは無駄に思えます、それで私は組み込みのWordPressポストタイプをまったく使用しないので。

誰かがそれを必要とするなら、なぜ

URLに "blog"がそれほどひどく必要である理由を誰かが疑問に思うのであれば、私たちのブログを私たちのサイトと同じインストールにマージしていて、貴重なグーグルジュースを失うことのないようにURLをそのまま残しておきたいからです。

任意の助けは大歓迎です - ありがとう!

9
Ryan

カスタム投稿タイプ登録でこれを行うことができます。

1)WordPress管理者のデフォルトパーマリンクをあなたの望む構造に設定してください。

/ blog /%postname%

2)register_post_type関数のrewrite-arrayに "slug"と "with_front"パラメータを追加します。 "slug"はあなたの投稿タイプの名前でなければなりません。

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

これにより、次の書き換え規則が生成されます。

デフォルト投稿:http://example.com/blog/%postname%
Defaultページ:http://example.com/%postname%
Custom投稿の種類:http ://example.com/your_post_type/%postname% 

_編集_

"slug"パラメータはオプションです。設定しない場合は、カスタム投稿タイプの名前が使用されます。 register_post_typeに関する関数リファレンスをチェックしてください: http://codex.wordpress.org/Function_Reference/register_post_type

14
rofflox

代替案 - あなたは恒久的な301リダイレクトを設定できます。これは人々を正しいリンクに送り、あなたのグーグルジュースを損なわないようにします。私はあなたの特定の質問に対する答えを知りません。

0
mrtsherman