web-dev-qa-db-ja.com

投稿またはカスタム投稿用の子URLを動的に生成する

明確なURLを含む投稿(またはカスタム投稿)を作成する方法

www.test.com/category/post-name

そしてその投稿の特定のセクションを参照するchild-URL

www.test.com/category/post-name/sub-url

その子URLに関連する特定の投稿を作成する義務はありませんか。

URLの投稿があります

www.test.com/category/post-name

ファイルcontent-product.phpによって生成され、私はのような子供のURLを持っていると思います

www.test.com/category/post-name/details

投稿のセクション/部分のみを参照/リコールするファイルcontent-product-details.phpによって生成されました。

いくつかの単語で示された構造を作成する方法はありますか?それとも、自分が欲しい子URLと同じ数のサブ投稿を手動で作成する必要がありますか?

1
user3791460

私はちょうどこのようなことを完了しました(このサイトの人々からの大きな助けを借りて)。

まず、あなたの関数に書き換えエンドポイントを追加する必要があります。

function wpa_read_endpoint(){
    add_rewrite_endpoint( 'sub-url', EP_PERMALINK);
}

add_action( 'init', 'wpa_read_endpoint' );

その後、必ずadminのパーマリンクセクションに行き、パーマリンク設定を更新するために保存してください。

次に、クエリ変数に応じてテンプレートを切り替えるためのコードを追加します。

function wpa_read_template( $template = '' ) {
    global $wp_query;
    if( ! array_key_exists( 'sub-url', $wp_query->query_vars ) ) return $template;

    $template = locate_template( 'templateFile.php' );
    return $template;
}
add_filter( 'single_template', 'wpa_read_template' );

いくつか注意してください。

  • それが変更する必要があるように私がページをしていたので、異なる '場所'(この場合 'EP_Permalink')についてはadd_rewrite_endpoint情報を参照してください。 ( http://codex.wordpress.org/Rewrite_API/add_rewrite_endpoint
  • Add_rewrite_endpointコードに加えた変更は、Adminのpermalinksセクションに戻って更新する必要があります。
  • テンプレートフィルタ(add_filter)を追加するときは、正しいテンプレートの 'type'、この場合はsingle_templateを書き留めてください。またページを使用していたのでpage_templateでした。

がんばろう!

2
Brian Miksic

私はあなたがもっと詳しく調べる必要があるのは、書き換えAPIエンドポイントです。

また、ここには 検索 を使用してください。すでに似たようなQ&Aがあるので、間違いなく役に立ちます。

最後に注意してください、手動でそのようなことをするのは面倒な時間がかかるかもしれません、それで私はそれを自動化することを選ぶでしょう、もちろん最後にそれはおそらく今の時間/お金の投資と後の利益の間の評価です - ここであなたが決める必要があります。

0
Nicolai