"Products"というカスタム投稿タイプと "Usage"という分類法があります。私の "Products"ランディングページには、クライアントがWYSIWYG経由で編集できるカスタムコンテンツが欲しいのですが。タクソノミーランディングページについても同様です。私の考えは、偽のページを作成し、IDを使用してarchive-products.phpおよびtaxonomy-usage.phpテンプレートにコンテンツを取り込むことでしたが、それを処理するよりよい方法があるかどうかに興味がありました。
最初の解決策は Settings API を使用して2つのフィールド"Products Description"と"Usage Description"を作成することです。 :
$options = get_option('my_theme_options');
echo $options['prod_description'];
// echo $options['usage_description'];
ただし、設定APIはWPコアの最良の部分ではないため、おそらくその価値のないフィールドのみに設定ページを作成します。
もう1つの方法は、ページをアーカイブとして使用することです( カスタムページテンプレート を使用)。
ページを作成して "Product Archive"という名前を付けます。
その中にそのようなものを入れます:
<?php
/*
Template Name: Products Archive
*/
get_header();
if ( have_posts() ) the post();
the_content(); // this will output the page content
$p_query = new WP_Query('post_type=products');
if ( $p_query->have_posts() ) { while( $p_query->have_posts() ) {
$p_query->the_post();
// this will require a 'entry-product.php' where you can put all your product markup
get_template_part('entry', 'product');
} }
wp_reset_postdata();
get_footer();
その後、バックエンドでページを作成し、作成したばかりのテンプレートに割り当てます。ページのコンテンツに必要なものをすべて入力して、ページを開くと、ページのコンテンツと商品が表示されます。
分類ページについても同じことができます。ページテンプレートとその中のクエリを変更するだけです。
何らかの理由でarchive-products.php
を製品アーカイブとして使用する必要がある場合は、代わりにカスタムテンプレートを作成しますが、それはページコンテンツの取得にのみ使用します。
テーマにphpファイルを作成し、 'page-prod-description.php' という名前を付けます。このファイルには次のものだけを入れてください。
<?php
/*
Template Name: Products Description
*/
wp_safe_redirect( home_url() );
exit();
このファイルがすることは、カスタムページテンプレートを作成することです。そのテンプレートはページに添付することができますが、あなたがそれを試すとホームページにリダイレクトされるので、それらのページを直接と呼ぶことはできません。
バックエンドにログインしてページを作成し、「Products Description」というタイトルを付けて、作成したばかりのページテンプレートを割り当てます。ページhttp://example.com/product-description
にアクセスしようとすると、ホームページにリダイレクトされます。
商品アーカイブテンプレートarchive-products.php
では、そのページに挿入されたコンテンツを次のように使用できます。
$desc = get_pages('meta_key=_wp_page_template&meta_value=page-prod-description.php');
if ( ! empty($desc) ) {
$page = array_shift($desc);
echo apply_filters('the_content', $page->post_content );
}
これであなたのクライアントはバックエンドにログインして "Products Description"ページを編集することができ、ページの内容に書かれたものはすべてアーカイブページに表示されます。
もちろん、分類アーカイブについても同じことができます。
通常のページを作成してから、適切なカスタムループを含むカスタムテンプレートを適用してCPTを出力できます。あるいは、クライアントがWYSIWYGを介してコンテンツを追加できるオプションページを作成して(またはテーマカスタマイザにオプションを追加して)、そのコンテンツを適切なアーカイブテンプレートに出力することもできます。