是否将内容添加到自定义帖子类型的存档和分类页面?

时间:2014-02-07 作者:paper_robots

我有一个名为“Products”的自定义帖子类型和一个名为“Usage”的分类法。在我的“产品”登录页上,我希望有客户可以通过WYSIWYG编辑的自定义内容。分类法登录页也是如此。我的想法是创建假页面,然后通过ID将内容拉到我的归档产品中。php和分类法用法。php模板,但我很好奇是否有更好的方法来处理它。

2 个回复
SO网友:gmazzap

第一种解决方案是使用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”,页面中写入的所有内容都将显示在存档页面中。

当然,对于分类法归档也可以这样做。

SO网友:markcbain

您可以创建普通页面,然后应用包含适当自定义循环的自定义模板来输出CPT。或者,您可以创建一个选项页面(或向主题定制器添加一个选项),客户端可以通过所见即所得添加内容,然后将此内容输出到相应的存档模板中。

结束

相关推荐

为什么WYSIWYG中的HTML评论会破坏页面显示?

这个问题是关于HTML代码注释的<!-- like so --> 而不是关于帖子/页面评论。我指定了所见即所得,但这个问题出现在HTML视图中,而不是视觉视图中。我一直在为一个客户建立一个网站,她来找我时遇到了一个问题——她试图对她的部分页面内容进行评论,这彻底改变了页面的行为!我仔细研究了一下,非常惊讶地发现,在内容的任何地方添加一条评论都会完全删除整个内容块。不仅如此,WordPress似乎对什么感到困惑the_content() 因为那一页甚至是。如果有侧边栏,则来自侧边栏的内容,如果没