我创建了一个自定义帖子类型,Local Pages
以及两种不同的分类法:Locations
和Services
.
到目前为止,自定义的post类型仍然有效。然而,URL并不漂亮。它们看起来像:http://domain.com/?localpage=%post_name%
理想情况下,我想为帖子类型和分类法创建一个归档。
例如,主归档文件类似于http://domain.com/localpage
, 将列出该职位类型中的所有职位。我想这需要它自己的归档模板。
我还想为我的分类法创建一个类别列表页面,其中URL类似于http://domain.com/localpage/locations
和http://domain.com/localpage/services
. 这两个页面基本上都列出了特定分类法的所有类别或项目。过滤每个页面上指向下一个分类法的链接。
这将如何工作的一个例子是:
Locations: 加利福尼亚州雅培;加利福尼亚州阿伯丁;电缆,CA;草莓,加利福尼亚州;加利福尼亚州Zuver
Services: 铝制可调天井盖;隔热天井盖;存放前遮阳篷;日光室外壳。
访问时http://domain.com/localpage/locations
, 您将看到上面列出的位置。单击任何特定位置后,您将被发送到以下位置http://domain.com/localpage/%location_name%/services
它将列出该位置的所有服务。单击某项服务后,您将被带到如下位置http://domain.com/localpage/%location_name%/%service_name%/%post_name%
我该如何实现这一点,需要哪些页面模板文件(archive.php、single.php等)?
这是我在函数中使用的代码。php’创建自定义帖子类型和分类法。
/////////////////////////////////////////////////
// Local Page Custom Post Type
/////////////////////////////////////////////////
function create_local_pages() {
$labels = array(
\'name\' => _x( \'Local Pages\', \'post type general name\' ), // Tip: _x(\'\') is used for localization
\'singular_name\' => _x( \'Local Page\', \'post type singular name\' ),
\'add_new\' => _x( \'Add New\', \'Local Page\' ),
\'add_new_item\' => __( \'Add New Local Page\' ),
\'edit_item\' => __( \'Edit Local Page\' ),
\'new_item\' => __( \'New Local Page\' ),
\'view_item\' => __( \'View Local Page\' ),
\'search_items\' => __( \'Search Local Pages\' ),
\'not_found\' => __( \'No Local Pages found\' ),
\'not_found_in_trash\' => __( \'No Local Pages found in Trash\' ),
\'parent_item_colon\' => \'\'
);
$annoucement_args = array(
\'labels\' =>$labels,
\'singular_label\' => __(\'Local Page\'),
\'public\' => true,
\'show_ui\' => true,
\'menu_position\' => 5,
\'capability_type\' => \'post\',
\'hierarchical\' => false,
\'rewrite\' => false,
\'supports\' => array(\'title\', \'editor\'),
\'has_archive\' => true,
);
register_post_type(\'localpage\', $annoucement_args);
}
add_action(\'init\', \'create_local_pages\');
/////////////////////////////////////////////////
// Local Page Taxonomies
/////////////////////////////////////////////////
add_action( \'init\', \'build_locations\', 0 );
function build_locations() {
register_taxonomy( \'location\', \'localpage\', array( \'hierarchical\' => true, \'label\' => \'Locations\', \'query_var\' => true, \'rewrite\' => true ) );
}
add_action( \'init\', \'build_services\', 0 );
function build_services() {
register_taxonomy( \'services\', \'localpage\', array( \'hierarchical\' => true, \'label\' => \'Services\', \'query_var\' => true, \'rewrite\' => true ) );
}
add_action( \'init\', \'build_keywords\', 0 );
function build_keywords() {
register_taxonomy( \'keyword\', \'localpage\', array( \'hierarchical\' => true, \'label\' => \'Keywords\', \'query_var\' => true, \'rewrite\' => true ) );
}
任何帮助都将不胜感激。
Additional information
在提供的示例中,本地页面是站点中与地理位置和单个特定服务相关的页面。因此,我将它们称为自定义帖子类型的“本地页面”。因此,他们可以被命名为任何不同的名字。
从我的理解来看,这是一个代表他的SEO游戏。除了一些关键字和位置在整个内容中发生变化外,大多数内容都是相同的。这不是我真正喜欢的东西,但我正在努力满足客户的要求。