我正在写一个插件,将利用其他插件的功能(考虑插件插件)。WordPress的 - 如何包括()一个文件,在另一个目录
我的文件位于/plugins/new-plugin/new-plugin.php
,我需要做一个 include(/plugins/OLD_plugin/old-plugin.php)
,所以我可以用一对夫妇的功能,从旧plugin.php文件。
这样做的正确方法是什么?我可以使全局可用的old-plugin.php中的函数可用,但我不想更改old-plugin.php文件。
我已经尝试了几种方法来做到这一点,但都没有奏效。新插件只会显示选项页面中的一些信息,不可供普通公众查看,也不会与我的网站中的任何公共页面或帖子进行交互。
我已经尝试过$ _SERVER,WP_PLUGIN_DIR,WP_CONTENT_DIR,绝对服务器路径,相对路径,甚至有些黑魔法,但似乎没有什么效果。
有了这些解决方案,插件的选项页面显示效果很好,但博客的页面不显示。与其他解决方案相反,并与其他一些解决方案甚至没有呈现,无论是管理页面或博客的网页,所有与错误有关的文件未找到。
的新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);
*/
}
?>
感谢任何想法!
感谢您的回答,但不是,旧插件中没有apply_filter或do_action。有一些'add_filter',但我认为它们不是一回事,对吗?任何其他想法? – Daniel 2011-03-29 02:45:34