我的“自定义帖子类型”的“我的页面”模板将应用于我网站上的每个帖子

时间:2019-01-28 14:30:56

标签: php wordpress custom-post-type

我创建了一个wordpress插件,其中创建了很多东西,包括自定义帖子类型,我也为帖子类型创建了自己的模板,效果都很好。

唯一的问题是,即使我指定了帖子类型,该模板也已应用于网站上的每个帖子,我在下面提供了将模板应用于帖子类型的代码,希望有人能帮助我。

<?php

/**
* @package WhitepaperPlugin
*/

namespace Inc\Base;

use Inc\Base\BaseController;

class LoadArchives extends BaseController{

    public function register(){
        add_action( 'archive_template', array($this,'sponsors_archive_template') );
        add_action( 'archive_template', array($this,'downloads_archive_template') );
        add_action( 'single_template', array($this,'download_custom_template') );
        add_action( 'page_template', array($this,'wpa3396_page_template') );
        $RegistrationFormId = esc_attr( get_option( 'ik_form_id' ) );
    }

    public function sponsors_archive_template( $archive_template ) {
         $archive_template = $this->plugin_path . 'page-templates/taxonomy-sponsors.php';
         return $archive_template;
    }

    function wpa3396_page_template( $page_template ) {
        if ( is_page( 'sponsors' ) ) {
            $page_template = $this->plugin_path . 'page-templates/template-sponsors.php';
        }
        return $page_template;
    }

    public function downloads_archive_template( $archive_template ) {
         global $post;

         if ( is_post_type_archive ( 'downloads' ) ) {
              $archive_template = $this->plugin_path . 'page-templates/archive-downloads.php';
         }
         return $archive_template;
    }

    public function download_custom_template( $single ) {
            global $post;

            if ($post->post_type == "downloads" && $template !== locate_template(array( $this->plugin_path . 'page-templates/single-downloads.php' ))){
                return $this->plugin_path . 'page-templates/single-downloads.php';
            }
            return $template;
        }  
}

0 个答案:

没有答案