我有一个名为活动的自定义分类法,还有一个名为操作符的自定义角色。因此,如果访问Example.com/操作员/观鸟,那么我想列出所有提供观鸟服务的运营商。观鸟是一个活动分类学术语.我为此做了一个不同的模板。我还为此开发了一个url结构,如下所示。如果有人访问Example.com/操作员/观鸟,我现在只想加载我的自定义模板
尝试过这个链接,但没有帮助。
function resources_cpt_generating_rule($wp_rewrite) {
global $wp_rewrite;
$rules = array();
$terms = get_terms( array(
'taxonomy' => 'activities',
'hide_empty' => false,
) );
$post_type = 'operator';
foreach ($terms as $term) {
$rules['operators/' . $term->slug . '/([^/]*)] = 'index.php?operators/'.$term->slug;
}
// merge with global rules
$wp_rewrite->rules = $rules + $wp_rewrite->rules;
}
add_action( 'generate_rewrite_rules', 'resources_cpt_generating_rule' );发布于 2019-04-02 16:23:29
在你所附的链接中,你拥有了你所需要的一切。你应该:
operators_actv),operators_actv),operators_actv,则使用D9操作钩子加载自定义模板。代码:
add_filter( 'query_vars', 'se332319_custom_query_vars' );
add_filter( 'template_include', 'se332319_custom_template', 50 );
add_action( 'generate_rewrite_rules', 'se332319_resources_cpt_generating_rule' );
function se332319_resources_cpt_generating_rule( $wp_rewrite )
{
$rules = [
'operators/([^/]+)/?别忘了刷新permalinks。在Dashboars -> Settings -> Permalinks中单击保存,或者通过使用flush_rewrite_rules() (如何重新创建重写规则)的代码进行保存。 => 'index.php?operators_actv=$matches[1]&activities=$matches[1]'
];
$wp_rewrite->rules = $rules + $wp_rewrite->rules;
return $wp_rewrite;
}
function se332319_custom_query_vars( $query_vars )
{
array_push( $query_vars, 'operators_actv' );
return $query_vars;
}
function se332319_custom_template( $template )
{
$qv = get_query_var('operators_actv', null);
if ( $qv !== null && term_exists($qv, 'activites') !== null ) {
// use "get_stylesheet_directory()" or "get_template_directory()"
// if template file is in theme directory
$template = dirname(__FILE__) . '/se332319_custom_template.php';
}
return $template;
}别忘了刷新permalinks。在D13中单击保存,或者通过使用D14 (C15)的代码进行保存。
https://wordpress.stackexchange.com/questions/332319
复制相似问题