微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Wordpress 在插件中包含页面模板问题

如何解决Wordpress 在插件中包含页面模板问题

我正在尝试为 wordpress 编写一个插件。我是从这个视频开始的。 Boilerplate Wordpress Plugin Development Tutorials

第34课写了前端部分,但是当我激活插件时,所有页面内容都消失了。我该怎么办?

当我将以下几行转换为注释时,问题就解决了。如果我这样做,我无法控制插件特定页面

 $this->loader->add_filter( 'page_template',$plugin_public,'our_own_custom_page_template');
 add_shortcode("render-my-content",array($plugin_public,"load_book_tool_content"));
 $this->loader->add_action("wp_ajax_public_ajax_request","handle_ajax_request_public");
 $this->loader->add_action("wp_ajax_nopriv_public_ajax_request","handle_ajax_request_public");

所有代码

private function define_public_hooks() {

    $plugin_public = new collocation_Public( $this->get_plugin_name(),$this->get_version() );

    $this->loader->add_action( 'wp_enqueue_scripts','enqueue_styles' );
    $this->loader->add_action( 'wp_enqueue_scripts','enqueue_scripts' );

    // filter for page template
    // Problem line is here... add_filter('page_template')
    $this->loader->add_filter( 'page_template','our_own_custom_page_template');
    add_shortcode("render-my-content","load_book_tool_content"));

    // this is for login case
    $this->loader->add_action("wp_ajax_public_ajax_request","handle_ajax_request_public");

    // this is for not logged in
    $this->loader->add_action("wp_ajax_nopriv_public_ajax_request","handle_ajax_request_public");
}

public function our_own_custom_page_template(){
    global $post;

    if($post->post_name == "book_tool"){
        $page_template = BOOKS_MANAGEMENT_TOOL_PLUGIN_PATH."public/partials/book-tool-layout.PHP";
    }

    return $page_template;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。