在其他事情之前:
Be really sure that your endpoint to retrieve this information is reasonably secure. (e.g. using SSL and some authentication like a password) Leaking the information which plugins are installed
on a site might offer a point of attack for hackers.
我不会为您提供现成的解决方案,但会概述两种不同的解决方法:推和拉。推送意味着您的站点向仪表板报告其插件,而拉送意味着您的仪表板主动从您的站点获取此信息。
此外,我只想告诉你事情的可湿性粉剂方面。如何处理仪表板的内容是一个完全独立的问题,也可能不适合此网站。
现在我们开始:
使用WP-Cron 您可以安排站点定期执行某些操作。例如,在我们的示例中,我们可以安排一个任务,获取已安装插件的列表并将其报告给您的仪表板(代码大大简化):
// Add the action that does the actual reporting
add_action( \'hourly_report\', \'report_plugins\' );
// Schedule this action hourly
wp_schedule_event( time(), \'hourly\', \'hourly_report\' );
// This function does the actual work
function report_plugins(){
//Get plugin data
$plugins = get_plugins();
//create the data you want to send using $plugins
$args = ...
// Post the data to your dashboard
wp_remote_post( $dashboard_url, $args );
}
另一种选择是创建一个AJAX端点,以便从站点主动获取插件数据。这大致可以遵循这些思路(代码也被大大简化):
// Add the AJAX handler
add_action( \'wp_ajax_nopriv_plugin_data\', \'return_plugin_data\' );
function return_plugin_data(){
//Again I want to emphasize that you need to ensure the user has the right to access this data.
//Get plugin data
$plugins = get_plugins();
//Encode and return the plugin data
echo json_encode($plugins);
die();
}
我希望这能帮助您开始,如果有任何概念上不清楚的地方,请告诉我。