他のプラグインの機能を利用するプラグインを作成しています (プラグインのプラグインについて考えてください)。
私のファイルは /plugins/new-plugin/new-plugin.php にあります
include(/plugins/OLD_plugin/old-plugin.php)
そして、old-plugin.php ファイルからいくつかの関数を使用できるようにする必要があり
ます。
これを行う正しい方法は何ですか?old-plugin.php の関数をグローバルに利用できるようにすることもできますが、old-plugin.php ファイルを変更したくありません。
これを行うためにすでにいくつかの方法を試しましたが、うまくいきませんでした。new-plugin は、オプション ページに一部の情報のみを表示し、一般の人には表示できず、私のサイトの公開ページや投稿とは対話しません。
私はすでに $_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);
*/
}
?>
アイデアをありがとう!