我创建了一个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;
}
}