Я пишу плагин, который будет использовать преимущества других плагинов (подумайте о плагине для плагина).
Мой файл находится в /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);
*/
}
?>
спасибо за любые идеи!