2017-03-21 60 views
-1

UPDATE *****WordPress的 - 插件自定義模板總是顯示在麪包屑

我發現爲什麼插件是加載在博客頂部的「博客」。我需要用下面的添加到load_main功能

public function load_main(){ 
$dir = plugin_dir_path(__FILE__);   
include ($dir.'/templates/main.php'); 
exit(); 
} 

不過,我仍然在試圖找出爲什麼麪包屑顯示爲首頁 - >博客。

我是否需要爲自定義模板創建自定義分類和發佈類型?如果是這樣,我如何將它應用於麪包屑的模板。

任何幫助,將不勝感激。

原貼****

我創建了一個重寫規則路由到一個自定義模板。當我激活我的插件時,正在應用重寫規則,但是當我導航到永久鏈接時,我將自定義模板加載到「博客」頁面的頂部。意思是在我的頁面頂部,我看到我創建的main.php模板,後面跟着我所有博客文章的列表。

麪包屑顯示永久鏈接導航到「博客」菜單項。以下是我用於rewrite_rules的代碼並加載了自定義模板。

class ssa_tools { 
public function __construct(){ 
    register_activation_hook(__FILE__, array($this,'flush_application_rewrite_rules')); 
    add_action('template_redirect', array($this,'front_controller')); 
    add_action('ssa_main', array($this,'load_main')); 
    add_filter('query_vars', array($this, 'manage_user_routes_query_vars')); 

} 
public function manage_user_routes() { 
    add_rewrite_rule('^ssa_tools/([^/]+)/?','index.php?control_action=$matches[1]', 'top'); 
} 
public function manage_user_routes_query_vars($query_vars){ 
    $query_vars[] = 'control_action'; 
    return $query_vars; 
} 
public function flush_application_rewrite_rules() { 
    $this->manage_user_routes(); 
    flush_rewrite_rules(); 
} 
public function front_controller(){ 
    global $wp_query; 
    $control_action = isset ($wp_query->query_vars['control_action']) ? $wp_query->query_vars['control_action'] : ''; 

    switch ($control_action) { 
     case 'ssa_main': 
      do_action('ssa_main'); 
      break; 
} 
public function load_main(){ 
    $dir = plugin_dir_path(__FILE__);  
    include ($dir.'/templates/main.php');  
} 
} 

我在本地機器上使用的URL是ssa.dev/ssa_tools/ssa_main/。似乎路由發生了兩次,一次是我的模板,然後路由到「博客」頁面。再次,當我看着麪包屑時,它顯示了home - > blog。

任何建議或幫助,將不勝感激。

回答

0

我使用(茁壯成長主題)的主題有編碼所施加的「博客」,以麪包屑默認。由於我創建的自定義插件生成了自己的模板頁面,因此主題引起了默認設置。

爲了解決問題,我添加了一個子主題,並根據需要重寫了麪包屑代碼。

相關問題