花了整整一夜才想到这一点,我濒临放弃: - (
我已经基于WP Starter Plugin(Wordpress Plugin Boilerplate)创建了一个Wordpress插件。到目前为止,后端方面工作正常,但我找不到如何使前端模板工作的方法。
该插件正在创建一个新的自定义帖子类型(有效),但是当我打开CPT单一时,它没有使用我在插件中包含的单个模板。
它已经带有这个功能:
function proofing_get_template( $name, $location = '' ) {
$template = '';
$locations[] = "{$name}.php";
$locations[] = "/proofing/{$name}.php";
$locations[] = "/templates/{$name}.php";
$locations[] = "/views/{$name}.php";
/**
* Filter the locations to search for a template file
*
* @param array $locations File names and/or paths to check
*/
$locations = apply_filters( 'proofing_template_paths', $locations );
$template = locate_template( $locations, TRUE );
if ( empty( $template ) ) {
if ( empty( $location ) ) {
$template = plugin_dir_path( dirname( __FILE__ ) ) . 'views/' . $name . '.php';
} else {
$template = plugin_dir_path( dirname( __FILE__ ) ) . 'views/' . $location . '/' . $name . '.php';
}
}
return $template;
} // proofing_get_template()
我的插件类中有这个钩子:
// Single
$this->loader->action( 'proofing-single-content', $plugin_templates, 'single_proof_content', 25 );
在class-templates.php中调用它:
/**
* Includes the single proof content
*/
public function single_proof_content() {
include proofing_get_template( 'proof-content', 'single' );
} // single_proof_content()
但是,它不会覆盖主题中的默认single.php。如何从插件中加载单个cpt.php?
提前感谢您的帮助!有一个很好的复活节: - )
亲切的问候。