web-dev-qa-db-fra.com

Comment inclure un plugin sans activation?

J'ai besoin d'inclure un plugin dans mon thème WordPress sans l'activation du plugin. J'ai ces lignes:

include_once dirname( __FILE__ ) . '/math/class-constrained-array-rounding.php';

include( plugin_dir_path( __FILE__ ) . 'class.jetpack-user-agent.php');

et

wp_enqueue_script( 'tiled-gallery', plugins_url( 'tiled-gallery/tiled-gallery.js', __FILE__ ), array( 'jquery' ) );

wp_enqueue_style( 'tiled-gallery', plugins_url( 'tiled-gallery/tiled-gallery.css', __FILE__ ), array(), '2012-09-21' );

Je pense que je dois utiliser la fonction get_template_directory_uri() au lieu de plugin_dir_path pour inclure ces fichiers, mais je suis confus.

Je suis nouveau dans WordPress. Quelqu'un peut-il suggérer une solution à ce problème? :)

2
Aineko

WP_PLUGIN_DIR.'/pluginName/' vous donnera le chemin absolu vers le répertoire du plugin.

EDIT Après le commentaire

Les plugins sont des plugins, les fichiers de thème sont des fichiers de thème. Ne confondons pas les deux. Vous ne pouvez pas copier un plugin dans le répertoire du thème - parce que ça ne marche pas comme ça.

Après une édition minutieuse, vous pouvez inclure le plugin dans les options de vos thèmes.

Permet de faire un exemple:

  1. Je veux inclure le plugin hello dolly dans mon thème. Je copie donc hello.php dans mon répertoire themes comme suit: themes/mytheme/include/plugins/hello.php.

  2. Pour charger ce fichier ("plugin" - mais ce n'est plus vraiment un plugin), j'ai besoin de require_once le fichier hello.php comme suit:

    define('mytheme_inc_path', TEMPLATEPATH . '/includes/');
    define('mytheme_inc_url', get_template_directory_uri(). '/includes/');
    require_once mytheme_inc_path. 'plugins/hello.php';
    

    une. Si j'ai un "plugin" plus complexe, le code sera comme ceci:

    require_once mytheme_inc_path. 'plugins/myplugin/myplugin.php';
    // because the plugin deserves its own directory
    

    Dans le myplugin.php, vous placerez les scripts et les styles requis de la manière suivante:

    function mytheme_plugin_scripts() {
        wp_enqueue_script('tiled-gallery',
            mytheme_inc_url . 'tiled-gallery/tiled-gallery.js',
            array('jquery')
        );
    
        wp_enqueue_style('tiled-gallery',
            mytheme_inc_url . 'tiled-gallery/tiled-gallery.css',
            array(), '2012-09-21');
    }
    
    add_action('wp_enqueue_scripts', 'mytheme_plugin_scripts');
    

Mise en garde

  • Assurez-vous de supprimer le 'plugin' hooks indésirable (filtre, activation/désactivation ou autre).
  • Assurez-vous de supprimer toutes les autres actions, sauf celles dont vous avez réellement besoin.

Conclusion

Si vous avez fait des recherches dans les procédures de mise en file d'attente de script/style, vous saurez que les plugins (qui sont stockés dans wp-content/plugins ou wp-content/mu-plugins utilisent des fonctions légèrement différentes pour récupérer le chemin absolu/relatif et l'URI. Comme ceci:

Référence de fonction/wp enqueue script

4
aifrim