任何情况下都不可能只有专业的,总会有一个地方有一个专业的。此外,我不认为这里有任何错误或正确的答案,而仅仅是偏好的事实
我想问自己最重要的问题是:“我的结构的其余部分会是什么样子?”
如果您只需要在单个视图中区分您的帖子,您的选项一就足够了。使用此选项,可以执行以下操作:
为餐厅帖子创建一个类别。可以这样说Restuarants
而不是在单个数据库中运行大量条件检查。php,创建一个自定义单。php用于特定类别,例如单餐厅。php
使用single template filter 将此单个模板分配给分配给Restaurant
类别
该功能的示例
add_filter( \'single_template\', function ($single_template) {
global $post;
if ( in_category( \'Restaurants\' ) ) {
$single_template = dirname( __FILE__ ) . \'/single-restaurants.php\';
}
return $single_template;
}, 10, 3 );
属于
Restaurants
类别现在将使用单一餐厅。用于单视图的php
如果您需要更多的控件和完全不同的结构,请使用自定义帖子类型。自定义帖子类型从主查询中排除,但在分类法页面和自定义帖子类型存档页面上除外。所以你可以让你的餐厅帖子与其他帖子完全分开。这里你可以利用pre_get_posts
将自定义帖子类型添加到特定模板的主查询中
以下是将自定义帖子类型添加到主页的示例
add_action( \'pre_get_posts\', function ( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'post_type\', array( \'post\', \'my_post_type\' ) );
}
});
默认情况下,如果您的帖子类型为“名称”
restaurants
, 您可以有一个名为
single-restaurants.php
, 无需额外代码。
您还应该看看Template Hierarchy 有关Wordpress如何选择要使用的模板以及如何操作模板的帮助