Wordpress-如何包含()位于另一目录中的文件

Wordpress-如何包含()位于另一目录中的文件,wordpress,include-path,Wordpress,Include Path,我正在写一个插件,它将利用其他插件的特性(想想一个插件的插件) 我的文件位于/plugins/new-plugin/new-plugin.php中 我需要做一个决定 include(/plugins/OLD\u plugin/OLD plugin.php) 因此,我可以使用old-plugin.php文件中的几个函数 正确的方法是什么?我可以让old-plugin.php中的函数在全球范围内可用,但我不想更改old-plugin.php文件 我已经尝试过几种方法,但都不管用。新插件只会在选项页面

我正在写一个插件,它将利用其他插件的特性(想想一个插件的插件)

我的文件位于/plugins/new-plugin/new-plugin.php中

我需要做一个决定
include(/plugins/OLD\u plugin/OLD plugin.php)
因此,我可以使用old-plugin.php文件中的几个函数

正确的方法是什么?我可以让old-plugin.php中的函数在全球范围内可用,但我不想更改old-plugin.php文件

我已经尝试过几种方法,但都不管用。新插件只会在选项页面中显示一些信息,公众无法查看,并且不会与我网站中的任何公共页面或帖子进行交互

我已经尝试过$\u服务器、WP\u插件、WP\u内容、绝对服务器路径、相对路径,甚至一些黑魔法,但似乎没有什么效果

使用这些解决方案,插件的选项页面显示良好,但博客页面不呈现。在其他解决方案中,情况正好相反,而在其他一些解决方案中,甚至没有呈现任何内容,无论是管理页面还是博客页面,都会出现与文件未找到相关的错误

新的plugin.php非常简单

<?php
/*
WP Common Headers
*/

global $wpdb;
if ( ! defined( 'WP_CONTENT_DIR' ) )
       define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
if ( ! defined( 'WP_PLUGIN_DIR' ) )
       define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );

include '/server-absolute-path/public_html/gameblogs/wp-content/plugins/old-plugin/old-plugin.php';

add_action('admin_menu', 'new_plugin_menu');

function new_plugin_menu() {
$page_title = 'New Plugin';
$menu_title = 'New Plugin';
$function = 'new_plugin_admin_page';
$menu_slug = 'new_plugin';

add_menu_page($page_title, $menu_title, 0, __FILE__, $function);
}

function new_plugin_admin_page() {

    $result = old_plugin_link_data(" WHERE link_destination NOT LIKE '/%' AND link_destination NOT LIKE '%gameblogs%'");

    $total = count($result);
    old_plugin_list_links($result, $total, FALSE, FALSE);
    */
    }
?>

检查旧插件文件,查看其中是否有
执行操作
应用过滤器
。如果有,那么您可以使用
add\u action
apply\u filters
使用新插件连接到旧插件脚本,并执行您想要执行的其他操作

看 及

例如(非常基本的示例):

如果在旧插件中找到:
do_action('some_type_of_reference
)`

在您的新插件中,您可以通过执行以下操作来钩住它:
`添加动作('some_type_of_reference'、'name_of_my_function')

函数名\u我的\u函数()的\u{ //这里执行的代码 }`

如果在旧插件中找到:
apply_filters('some_type_of_reference',$variable)

然后,在新插件中,您可以通过执行以下操作挂接到过滤器:
apply_filter('some_type_of_reference'、'my_function')

函数my_函数($variable){

//对过滤器中的变量进行操作

返回$variable

}

您看过
插件url
功能了吗?我还没有深入阅读您的代码,但它可能会有所帮助

plugins\u url模板标记检索指向plugins目录或该目录中特定文件的url。您可以在$path中对插件slug进行硬编码,或者将FILE作为第二个参数传递,以获得正确的文件夹名称


希望这有帮助

感谢您的回答,但是没有,在旧插件中没有应用过滤器或执行操作。有一些
add\u filter
,但我认为它们不是一回事,对吗?还有其他想法吗?