我正在寫一個插件,將利用其他插件的功能(考慮插件插件)。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