UPDATEが*****Wordpressの - カスタムテンプレートをプラグインすると、常にプラグインは、ブログの上にロードされた理由を
私が見つけたパンくずの「ブログ」を示しています。私はしかし、私はまだパンくずがホーム - >ブログとして示した理由を把握しようとしていますload_main機能
public function load_main(){
$dir = plugin_dir_path(__FILE__);
include ($dir.'/templates/main.php');
exit();
}
に追加された次の必要がありました。
カスタムテンプレートのカスタムタクソノミーと投稿タイプを作成する必要がありますか?もしそうなら、ブレッドクラムのテンプレートにどのように適用しますか?
ご協力いただければ幸いです。
ORIGINAL POST ****
私は、カスタムテンプレートにルーティングする書き換えルールを作成しました。プラグインを有効にすると書き換えルールが適用されますが、パーマリンクに移動すると「ブログ」ページの上にカスタムテンプレートが読み込まれます。私のページの一番上にある意味で、私が作成した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/です。ルーティングが2回起こっているようです。テンプレート用に1回、次に「ブログ」ページにルーティングしています。繰り返しますが、パンくずリストを見ると、ホーム - >ブログが表示されます。
ご意見やご協力をいただければ幸いです。