为了在我的插件文件中重定向模板,我使用了php和wordpress功能,并且工作正常。
function wpc_template_chooser($wpc_template){
global $wp_query;
$wpc_plugindir = dirname(__FILE__);
$wpc_post_type = get_query_var('post_type');
if( $wpc_post_type == 'wpcproduct' ){
return $wpc_plugindir . '/themefiles/single-wpcproduct.php';
}
if (is_tax('wpccategories')) {
return $wpc_plugindir . '/themefiles/taxonomy-wpccategories.php';
}
if (is_tax('wpctags')) {
return $wpc_plugindir . '/themefiles/taxonomy-wpctags.php';
}
return $wpc_template;
但是在其他插件中我使用OOP来定位模板。它也工作正常。 但是使用OOP来处理结果我使用了Template-locate()。 像这样的东西
function kbe_template_chooser($template){
$template_path = apply_filters( 'kbe_template_path', 'wp_knowledgebase/' );
$find = array();
$file = '';
if ( is_single() && get_post_type() == 'kbe_knowledgebase' ) {
$file = 'single-kbe_knowledgebase.php';
$find[] = $file;
$find[] = $template_path . $file;
} elseif ( is_tax('kbe_taxonomy') || is_tax( 'kbe_tags') ) {
$term = get_queried_object();
if ( is_tax( 'kbe_taxonomy' ) || is_tax( 'kbe_tags' ) ) {
$file = 'taxonomy-' . $term->taxonomy . '.php';
} else {
$file = 'archive.php';
}
$find[] = 'taxonomy-' . $term->taxonomy . '-' . $term->slug . '.php';
$find[] = $template_path . 'taxonomy-' . $term->taxonomy . '-' . $term->slug . '.php';
$find[] = 'taxonomy-' . $term->taxonomy . '.php';
$find[] = $template_path . 'taxonomy-' . $term->taxonomy . '.php';
$find[] = $file;
$find[] = $template_path . $file;
} elseif ( is_post_type_archive( 'kbe_knowledgebase' ) || is_page( get_option('kbe_archive_page_id' ) ) ) {
$file = 'archive-kbe_knowledgebase.php';
$find[] = $file;
$find[] = $template_path . $file;
}
if ( $file ) {
$template = locate_template( array_unique( $find ) );
if ( ! $template ) {
$template = trailingslashit( dirname(__FILE__) ) . 'template/' . $file;
}
}
return $template;
找到模板有问题。当我在插件中使用locate模板时,它与其他插件冲突。每个插件都显示与我使用的定位模板相同的插件结果。
有什么解决方案吗? 提前致谢。
答案 0 :(得分:0)
我自己想出来了.. 问题出在
elseif ( is_post_type_archive( 'kbe_knowledgebase' ) || is_page( get_option('kbe_archive_page_id' ) ) ) {
这一行。,。 我改变了一件事。
elseif ( is_post_type_archive( 'kbe_knowledgebase' ) || is_page( 'KBE_PAGE_TITLE' ) ) {
是的。