Wordpress插件Boilerplate模板 - 从哪里开始

时间:2017-04-16 10:48:17

标签: php wordpress templates plugins

花了整整一夜才想到这一点,我濒临放弃: - (

我已经基于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?

提前感谢您的帮助!有一个很好的复活节: - )

亲切的问候。

0 个答案:

没有答案