我正在编写一个插件,它将利用其他插件的功能(考虑一个插件的插件)。
我的文件位于 /plugins/new-plugin/new-plugin.php
我需要做一个
include(/plugins/OLD_plugin/old-plugin.php)
,所以我可以使用 old-plugin.php 文件中的几个函数。
这样做的正确方法是什么?我也许可以让 old-plugin.php 中的函数在全球范围内可用,但我不想更改 old-plugin.php 文件。
我已经尝试了几种方法来做到这一点,但都没有奏效。新插件只会在选项页面中显示一些信息,公众无法查看,并且不会与任何公共页面或我网站上的帖子进行交互。
我已经尝试过 $_SERVER、WP_PLUGIN_DIR、WP_CONTENT_DIR、绝对服务器路径、相对路径甚至一些黑魔法,但似乎没有任何效果。
使用其中一些解决方案,插件的选项页面显示良好,但博客页面不呈现。对于其他解决方案,相反的情况会发生,而对于其他一些解决方案,无论是管理页面还是博客页面,都不会出现任何关于找不到文件的错误。
new-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);
*/
}
?>
感谢您的任何想法!