【问题标题】:Filter or action hook to assign a template by a field in custom post type通过自定义帖子类型中的字段分配模板的过滤器或操作挂钩
【发布时间】:2021-12-22 20:09:05
【问题描述】:

我有一个名为“project”的自定义帖子类型,并为其使用了模板“single-project.php” 这工作正常。

现在我想进行一些区分,如果“项目”帖子类型中的自定义值是移动的,我需要分配模板“single-project.php”,如果该自定义是“project-website.php”模板元值等于网站。

表示,需要代码根据自定义元值动态更改模板。

谢谢

【问题讨论】:

    标签: php wordpress templates custom-post-type


    【解决方案1】:

    如果自定义元值等于“website”,最简单的方法是从“single-project.php”文件中调用“project-website.php”文件。

    编辑你的“single-project.php”文件:

    <?php
        $custom_field_value = get_post_meta($post_id,'your-custom-meta-key',true);
    
        if($custom_field_value == 'website'){
            echo get_template_part('single-project');
        } else {
            *** ENTER YOUR CURRENT CODE FOR SINGLE-PROJECT.PHP HERE ***
        }
    ?>
    

    【讨论】:

      【解决方案2】:

      @Jeremy 好点,我已经知道了,但我是这样做的,谢谢,

      
      function get_custom_post_type_template($single_template)
      {
          global $post;
          $object = get_queried_object();
          $id = $object->ID;
          $post_type = $object->post_type;
          $is_mobile = get_field('is_mobile_app', $id);
      
      
          if ($is_mobile !== true && $post_type == 'project') {
             return $single_template = dirname(__FILE__) . '/single-project-website.php';
          } else  {
              return $single_template;
          }
      
      //    return $single_template;
      }```
      

      【讨论】:

        猜你喜欢
        • 2021-07-17
        • 2015-07-14
        • 2015-07-22
        • 2020-11-17
        • 2012-02-15
        • 2014-09-01
        • 2016-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多