一个分类术语的自定义模板

时间:2020-04-01 作者:Ahmad Al Hariri

“你好,我有一个自定义的职位类型叫做Grants,分类法叫做scholarship\\U degree,还有一个术语叫做all degrees scholarships。我已经获得了一笔赠款,但我现在需要为分类法“scholarship\\U degree”中的“所有学位奖学金”一词创建一个模板。我已经尝试了这段代码,但问题是我不想为所有其他术语注册这个单一术语模板。任何帮助

我使用的代码:

               function get_grants_degrees_single_template($single_template) {
                 global $post;
                  if ($post->post_type == \'grants\') {
                       $terms = get_the_terms($post->ID,  \'all-degrees-scholarships\');
                           if($terms && !is_wp_error( $terms )) {

                             foreach($terms as $term){
                              $single_template = dirname( __FILE__ ) . \'/single-\'.$term->slug.\'.php\';
                                      }
                                  }
                               }
                               return $single_template;
                          }
                          add_filter( "single_template", "get_grants_degrees_single_template" ) ;

1 个回复
SO网友:Tom J Nowell

这很容易,与其尝试更改加载的模板,不如加载single-grants.php 模板,然后使用get_template_part 并根据帖子的术语传递不同的值。

但要小心,single-termname.php 不是一个好的命名方案,因为它可能被滥用,例如,您可能会遇到冲突。最好使用如下命名方案single-grant-termname.php

相关推荐

在unctions.php文件中获取每个帖子的帖子术语‘wp_get_POST_Terms’

我使用了一个带有Ajax操作的表单来在提交时获取帖子信息。它很有魅力。然而,我使用了类别来将工作划分为不同的类别。其中之一就是品牌。在页面模板中,我使用的脚本有效,但在函数中使用时有效。php文件。它无法获得所需的结果。我认为这可能与何时触发对帖子的查询或如何设置add\\u操作有关。有人能帮我查一下ID为31的类别的名称吗?在函数中使用时。php。以下是我写的:if( $query->have_posts() ) : while( $query->have_posts() )