0

我想为我自己的所有基于 wordpress 的网站制作一个插件。这个想法很简单,我想通过使用 CURL 来获取这些站点的版本(可能还有其他信息)。现在,我有这样的代码:

<?php
/*
Plugin Name: Manage Site
Plugin URI: http://not-available-yet.com/
Description: A manage site plugin
Author: Go Frendi Gunawan
Version: 0.0
Author URI: http://not-available-yet.com/
*/

// this file is located on wp-content/plugins/manage_site

require_once '../../../wp-includes/version.php'; // do I need to include everything manually like this?


if(isset($_GET['key']))
{
    $key = $_GET['key'];
    if($key=='1234'){
        echo $wp_version;
    }
}

我可以通过使用带有此地址的 CURL 访问它: http ://my_domain.com/wordpress/wp-content/plugins/manage_site/manage_site.php?key=1234

我会得到 wordpress 版本作为回应:

3.5.1

现在是工作。

但是,由于这是我第一次编写 wordpress 插件,我可能会做错事。那么,我做对了吗?或者有没有更好的方法来写这个?

4

1 回答 1

0

我找到了答案。@kjetilh 和 @brasofilo 在“正常方式”访问 wordpress 插件的情况下都是正确的。由于我直接访问插件,因此没有加载 wordpress 引导程序。因此,我的第一种方法是部分正确的。但是加载 wp-load.php 更加优雅(并且简单且可用),因为它加载了所有内容,不仅是版本,而且访问“更多信息”会很有用:

<?php
/*
Plugin Name: Manage Site
Plugin URI: http://not-available-yet.com/
Description: A manage site plugin
Author: Go Frendi Gunawan
Version: 0.0
Author URI: http://not-available-yet.com/
*/

// this file is located on wp-content/plugins/manage_site

require_once '../../../wp-load.php';

if(isset($_GET['key']))
{
    $key = $_GET['key'];
    if($key=='1234'){
        echo $wp_version;
    }
}
于 2013-02-15T23:27:33.543 回答