2017-08-20 1 views
1

Nous avons créé un plugin avec un nouveau modèle et nous voulons accrocher la fonction thème principal et retourner la fonction plugin principale.Appelez la fonction thème principal avec le plugin

Nous avons essayé avec:

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; 
} 

et modèle de page modifiée dans les fonctions de thème avec fonction principale de plugin qui fonctionne modèle intérieur plugin:

add_filter("page_template", "main_plugin_function"); 

est-page_template le filtre droit de modifier modèle de thème ?

Merci pour votre aide!

Répondre

0

Je pense que vous devriez utiliser le filtre template_include, ce crochet de filtre est exécuté immédiatement avant que WordPress n'inclue le fichier modèle prédéterminé. Cela peut être utilisé pour remplacer le comportement du modèle par défaut de WordPress.

Par exemple

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

Merci pour l'aide! J'essaye beaucoup de combinaisons avec template_include pour réaliser l'appel de plugin pour changer le modèle avec la fonction du plugin, mais toujours sans succès. Maintenant, j'essaie d'appeler le plugin de l'enfant teme functions.php, avec: add_filter ('template_include', 'function_from_plugin'); if (! Function_exists ('function_from_plugin')) { fonction function_from_plugin ($ template) { retour plugins_url (__FILE__). 'plugin_name/plugin.php'; } } return $ template; – alench