我创建了一个论坛插件,并希望有一个cystomized搜索结果模板,我在插件执行文件中添加了以下摘录:
add_filter(\'single_template\', \'pagina_topicos\');
function pagina_topicos($single) {
global $wp_query, $post;
/* Informando o Modelo de Página das Aulas */
if ($post->post_type == "stopicos"){
if(file_exists(plugin_dir_path( __FILE__ ) . \'/single-topico.php\'))
return plugin_dir_path( __FILE__ ) . \'/single-topico.php\';
}
if( $wp_query->is_search && $post_type == \'stopicos\' )
{
return plugin_dir_path( __FILE__ ) . \'/archive-stopicos.php\';
}
return $single;
}
我在搜索中使用以下表格:
<form role="search" action="<?php echo site_url(\'/\'); ?>" method="get" id="searchform">
<input type="text" class="submit-search form-control input-lg" placeholder="Buscar" />
<input type="hidden" name="post_type" value="stopicos"/>
<span class="input-group-btn">
<button class="btn btn-info btn-lg" type="submit" value="Search">
<i class="glyphicon glyphicon-search"></i>
</button>
</form>
有什么问题导致我定制的模型未加载?
最合适的回答,由SO网友:zedejose 整理而成
您正在使用single_template
钩子,称为single 邮递从Codex:
“single\\u template”过滤器可用于加载给定帖子的自定义模板。无论何时调用“单个”模板,它都将替换使用的模板。
我的猜测是,这可能可以通过使用template_include 挂钩:
这个过滤器挂钩在WordPress包含预定模板文件之前立即执行。这可以用来覆盖WordPress的默认模板行为。