我正在建立一个商业目录,并将给出一些背景,然后在最后有2个问题。
The development URL is: http://svcta.lainternet.biz/
The website I am rebuilding is: https://www.visitsimivalley.com/
当前网站要求每个分类法类型具有唯一的业务概要文件。例如,如果您是一家酒店,并且您也有会议室和婚礼场地,那么您最终会得到3个列表,一个用于酒店,一个用于会议,一个用于婚礼。
我希望有一个主配置文件,其中包含我们将显示的每个数据字段的信息,而不考虑分类类型。
为了尽量减少编码,我使用了高级自定义字段和CPT UI。
我有一个Custom Field “Directory Listing” with Slug “directory”. 它目前有一些地址和照片库的基本字段。
我创建了一个新的Taxonomy “Directory Categories” with Slug “directory_category” 并在WordPress管理>目录>类别下创建了以下术语:
Hotel
Meeting Space
Restaurant
Sports Venue
Things to Do
Wedding Venue
我创建了以下模板
archive-directory.php
single-directory.php
taxonomy-directory_category-hotels.php
taxonomy-directory_category-meetings.php
taxonomy-directory_category-restaurants.php
taxonomy-directory_category-sports.php
taxonomy-directory_category-things-to-do.php
taxonomy-directory_category-weddings.php
我可以查看目录列表并控制其存档/列表视图;单一视图。
我还可以控制每个分类法的归档/列表视图。
Question 1 – 这是一个合理的方法吗?我有没有犯过现在应该改正的错误?
Question 2 – 现在我可以控制列表了,如何设置模板文件来显示WordPress之外使用“single directory.php”的实际列表。
例如:我有一个酒店的目录列表,其中包含酒店页面、会议页面和婚礼页面所需的所有信息。我想根据用户来自的列表页面来控制用户看到的模板。以下3个链接均包含“最佳西方”简介。
http://svcta.lainternet.biz/directory_category/hotels/ http://svcta.lainternet.biz/directory_category/meetings/ http://svcta.lainternet.biz/directory_category/weddings/
如何使您在/hotels/页面上单击Best Western时被发送到酒店模板。当您在/meetings/or/weddings/page上单击Best Western时,它会加载相应的会议或婚礼模板?
更新5-9-18在Milo的帮助下,我能够将完成原始任务所需的其余代码和模板组合在一起。
现在,我的函数中有以下代码。php文件。
// Register Endpoints
// =============================================================================
function wpd_add_my_endpoints(){
add_rewrite_endpoint( \'hotels\', EP_PERMALINK );
add_rewrite_endpoint( \'meetings\', EP_PERMALINK );
add_rewrite_endpoint( \'restaurants\', EP_PERMALINK );
add_rewrite_endpoint( \'sports\', EP_PERMALINK );
add_rewrite_endpoint( \'things-to-do\', EP_PERMALINK );
add_rewrite_endpoint( \'weddings\', EP_PERMALINK );
}
add_action( \'init\', \'wpd_add_my_endpoints\' );
// Register Endpoint Templates
// =============================================================================
function wpd_endpoint_templates( $template ){
global $wp_query;
if( isset( $wp_query->query_vars[\'hotels\'] ) ){
$template = locate_template( \'single-directory-hotels.php\' );
}
elseif( isset( $wp_query->query_vars[\'meetings\'] ) ){
$template = locate_template( \'single-directory-meetings.php\' );
}
elseif( isset( $wp_query->query_vars[\'restaurants\'] ) ){
$template = locate_template( \'single-directory-restaurants.php\' );
}
elseif( isset( $wp_query->query_vars[\'sports\'] ) ){
$template = locate_template( \'single-directory-sports.php\' );
}
elseif( isset( $wp_query->query_vars[\'things-to-do\'] ) ){
$template = locate_template( \'single-directory-things-to-do.php\' );
}
elseif ( isset( $wp_query->query_vars[\'weddings\'] ) ){
$template = locate_template( \'single-directory-weddings.php\' );
}
return $template;
}
add_filter( \'single_template\', \'wpd_endpoint_templates\' );
我有以下新的模板文件。
single-directory-hotels.php
single-directory-meetings.php
single-directory-restaurants.php
single-directory-sports.php
single-directory-things-to-do.php
single-directory-weddings.php
正如我想象的那样,前端一切正常,我的客户将对我交付的产品非常满意。