第一种解决方案是使用Settings API 并创建两个字段“Products Description”和“Usage Description”,然后在模板中显示字段,就像:
$options = get_option(\'my_theme_options\');
echo $options[\'prod_description\'];
// echo $options[\'usage_description\'];
然而,设置API并不是WP核心最好的部分,可能只为那些不值得的字段创建设置页面。
另一种方法是使用页面(带有custom page template) 作为存档。
创建一个页面并称之为“产品存档”
里面写着这样的东西:
<?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”,页面中写入的所有内容都将显示在存档页面中。
当然,对于分类法归档也可以这样做。