如何在不激活的情况下包含插件?

时间:2014-09-05 作者:Aineko

我需要在我的WordPress主题中包含插件,而不需要激活插件。我有以下几行:

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

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

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\' );
我想我需要使用函数get_template_directory_uri() 而不是plugin_dir_path 包括这些文件,但我很困惑。

我是WordPress的新手。有人能提出这个问题的解决方案吗?:)

1 个回复
最合适的回答,由SO网友:aifrim 整理而成

WP_PLUGIN_DIR.\'/pluginName/\' 将为您提供插件目录的绝对路径。

EDIT After comment

插件是插件,主题文件是主题文件。让我们不要混淆两者。您不能复制主题目录中的插件,因为东西不是这样工作的。

仔细编辑后,您可以将插件作为主题选项的一部分。

让我们举个例子:我想在我的主题中包括hello dolly插件。所以我抄你好。php进入我的主题目录,如下所示:themes/mytheme/include/plugins/hello.php.

要加载此文件(“插件”-但它不再是真正的插件),我需要require_once 这个hello.php 像这样的文件:

define(\'mytheme_inc_path\', TEMPLATEPATH . \'/includes/\');
define(\'mytheme_inc_url\', get_template_directory_uri(). \'/includes/\');
require_once mytheme_inc_path. \'plugins/hello.php\';
a.如果我有一个更复杂的“插件”,那么代码如下:

require_once mytheme_inc_path. \'plugins/myplugin/myplugin.php\';
// because the plugin deserves its own directory
myplugin.php 您将按如下方式将所需的脚本和样式排队:

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\');
注意,一定要删除不需要的“插件”hooks (过滤、激活/停用或其他)actions 除了那些你真正需要的结论,如果你对脚本/样式排队操作做了一些研究,你就会知道插件(存储在wp-content/pluginswp-content/mu-plugins 使用稍微不同的函数来检索绝对/相对路径和uri。像这样:

Function Reference/wp enqueue script

结束

相关推荐

无法在多站点上查看网络plugins.php或upgrade-core.php

我有一个有5或6个站点的网络。在网络管理面板中,我可以看到除/wp admin/network/plugins之外的所有页面。php页面和/wp admin/network/upgrade核心。php页面。查看文件夹结构时,这两个文件都存在,但由于某些原因,它们不会加载。非常感谢您的帮助。