对GET_TEMPLATE_PART重新使用单一CPT代码?

时间:2014-03-07 作者:Guillaume

Wordpress新手,这里。

我使用CPT UI创建了一个名为“菜单”的自定义帖子类型。后来创建了该“菜单”CPT的单个实例,由“单个菜单”模板指导。

下面是我对“菜单”CPT的层次结构:

一个模板“菜单”:列出所有“菜单”帖子一个模板“单菜单”:生成“菜单”帖子类型的各个帖子基于“单菜单”模板的各个页面:例如,“周一”页面现在,我想检索该CPT的这个“周一”单例,并使用get\\u template\\u part()重用其代码。

到目前为止,我已经能够调用CPT列表页面内容(“菜单”),但无法调用由“单菜单”模板控制的单个实例。这是我的代码:

<?php 
get_template_part( \'menus\'); 
?>
在我的浏览器上,目标页面的路径如下所示:

http://localhost/website/menu/monday/
我尝试了几种组合,但都无法调用。如前所述,wordpress是新手,在静态原型中使用标准php include函数。它工作得很好,现在我如何用get\\u template\\u part()调用这个“星期一”?

你知道怎么做吗?欢迎指点!

2 个回复
最合适的回答,由SO网友:Milo 整理而成

您不能通过以下方式重用特定页面的数据get_template_part, 你query 用于特定页面的数据和使用get_template_part 输出结果。看看核心捆绑主题是如何使用的get_template_part 在循环中输出示例的主查询。

查询页面:

$query = new WP_Query( array(
    \'post_type\' => \'menu\',
    \'name\' => \'monday\'
) );
if( $query->have_posts() ){
    $query->the_post();
    get_template_part( \'menus\' );
    wp_reset_postdata();
}
那么menus.php 输出结果:

<?php
the_title();
the_content();
// etc..

SO网友:Guillaume

更新我的问题。为了记录,我创建了一个自定义帖子类型“menu”,其中包含一个帖子列表页面“menus”,以及该自定义帖子的单个实例“menu/monday”、“menu/周二”等。

我试图使用get\\u template\\u part()函数访问这个实例的内容,以便在我的首页上显示它。

以下是我最终的行动:

首先,我为include“content monday”创建了一个新的php:

<?php

$args = array(
    \'post_type\' => \'menu\',
    \'name\' => \'monday\'); // using Milo\'s code here to fetch the content of my single-custom

$the_query = new WP_Query( $args );
?>

<?php if ( have_posts() ) : while ($the_query->have_posts() ) : $the_query->the_post() ;?>
<?php the_field( \'plat_vegetarien\' ); ?>
<?php endwhile; else: ?>

<p>No post!</p>


<?php endif; ?>
然后,我使用get\\u template\\u part()在我的首页上显示内容:

get_template_part( \'content\', \'monday\' );
到目前为止,它似乎工作得很好,感谢米洛的帮助!

结束

相关推荐