Wordpress-如何包含()位于另一目录中的文件
我正在写一个插件,它将利用其他插件的特性(想想一个插件的插件) 我的文件位于/plugins/new-plugin/new-plugin.php中 我需要做一个决定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文件 我已经尝试过几种方法,但都不管用。新插件只会在选项页面
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
,但我认为它们不是一回事,对吗?还有其他想法吗?