2017-08-20 2 views
1

Wir erstellten ein Plugin mit einer neuen Vorlage und wir wollen die Hauptthema-Funktion hook und die Haupt-Plugin-Funktion zurückgeben.Call Hauptthema Funktion mit Plugin

Wir haben versucht, es mit:

add_filter("page_template", "test"); 

function test($template) { 
    if('plugin_name.php' == basename($template)) 
     $template = WP_PLUGIN_DIR . '/plugin_folder/plugin_name.php'; 
    return $template; 
} 

und geändertener Seitenvorlage in Thema Funktionen mit Hauptfunktion des Plugin, das Template innerhalb Plugin läuft:

add_filter("page_template", "main_plugin_function"); 

ist die richtigen Filter page_template Thema Vorlage ändern ?

Vielen Dank für Ihre Hilfe!

Antwort

0

Ich denke, Sie sollten template_include Filter verwenden, wird dieser Filter Hook ausgeführt, bevor WordPress die vorgegebene Vorlage Datei enthält. Dies kann verwendet werden, um das Standardvorlagenverhalten von WordPress zu überschreiben.

Zum Beispiel

add_filter('template_include', 'portfolio_page_template', 99); 

function portfolio_page_template($template) { 

    if (is_page('portfolio') ) { 
     $new_template = locate_template(array('portfolio-page-template.php')); 
     if ('' != $new_template) { 
      return $new_template; 
     } 
    } 

    return $template; 
} 

https://codex.wordpress.org/Plugin_API/Filter_Reference/template_include

+0

Dank für die Hilfe! Ich versuche viele Kombinationen mit template_include, um Plugin-Aufruf zu erreichen, um Vorlage mit Funktion vom Plugin zu ändern, aber immer noch erfolglos. Jetzt versuche ich das Plug-in aus der untergeordneten Funktion functions.php aufzurufen: whith: add_filter ('template_include', 'function_from_plugin'); if (! Function_exists ('function_from_plugin')) { Funktion function_from_plugin ($ template) { return plugins_url (__FILE__). 'plugin_name/plugin.php'; } } Rückgabe $ Vorlage; – alench