web-dev-qa-db-ja.com

投稿タイプのスラッグを隠すためにカスタム投稿タイプのURLを変更することは可能ですか?

/ {custom-post-type}/{post-name}を/ {post-name}に変更したいのですが、可能ですか。

これが不可能な場合は、PagesやPostのラベルや用語を「クライアント」や「プロジェクト」などと呼ばれるように変更できますか?

4
Tom
'rewrite' => array('slug' => '/', 'with_front' => false)

これはあなたのために正しく形成されたURLを取得しますが、あなたがあなたのテーマでそれを扱わない限り、それは404になります。

8

あなたのカスタム投稿タイプ登録ではオプション'rewrite'を使う必要があります。

例えば。 'rewrite' => array('slug' => 'products'),

コーデックス から

URLに名前を付けても "きれいな" URL構造を使いたいときは、 " rewrite "要素を配列に追加する必要があります。たとえば、上記の "ACME Widgets"の例を想定します。

add_action( 'init', 'create_post_type' );
function create_post_type() {
  register_post_type( 'acme_product',
      array(
          'labels' => array(
              'name' => __( 'Products' ),
              'singular_name' => __( 'Product' )
          ),
          'public' => true,
          'has_archive' => true,
          'rewrite' => array('slug' => 'products')
      )
  );
}

上記の結果はhttp:/example.com/products/%product_name%のようなURLになります(上記の%product_name%の説明を参照)。ここでは複数形を使用しています。製品のリストを埋め込むページの論理URL(例:http:/example.com/products/)。

また、ここで "製品"のような一般的な名前を使用すると、同じ名前を使用する他のプラグインやテーマと競合する可能性があります。カスタム投稿タイプ名が格納されるのと同じ方法で、URL構造がデータベース内の各投稿レコードに永続的に格納されないため、2つのプラグイン間のやり取りが簡単になります。

8
RagnaRock

カスタム投稿タイプのスラッグを変更しただけです(この場合は"best-practices"から"bestpractices"に変更しました)。空白のスラグを含むコードをコピーしました。

'rewrite' => array('slug' => ''),

最初は空白のままだったので、Wordpressはスラッグとしてカスタム投稿タイプの名前("best-practices")を使用していました。私のコード行をに変更しました

'rewrite' => array('slug' => 'bestpractices'),

既存のカスタム投稿タイプのナメクジを変更している場合は、変更を有効にするためにパーマリンクをリセットする必要があることに注意してください。

4
Keegan Berry

はい、スラッグを変更することができます。手順に従ってください。

ステップ1:オプション "rewrite"からスラッグ名を変更します。 (テーマ関数(functions.php)にあります)

'rewrite' => array( 'slug' => 'products')

ステップ2:パーマリンクをリセットします。そうでなければ、404エラーになります。 1>後藤WPダッシュボード。 2>設定 - >パーマリンク

共通設定セクションの下---最初にプレーンに変更して保存します。その後、もう一度設定を好みのフォーマットに変更します。

0