在wordpress代码中调用外部函数

时间:2014-04-14 00:03:07

标签: php mysql wordpress

wordpress是否会忽略外国PHP代码?我试图在wordpress的root index.php上的这一行下面的外部类中抛出一个函数调用

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

这是我的函数调用

require_once($_SERVER['DOCUMENT_ROOT']."/modules/Site-Traffic/Site-Traffic.php");
//Create traffic object for tracking who is hitting this page
$site_traffic = new Site_Traffic();
$site_traffic->SetTrafficLog();

以下是此功能中发生的事情。

  • 设置正确的数据库,表,用户名,密码
  • 检查要在函数中跟踪的特殊情况的查询字符串参数
  • 如果函数看到一个特殊参数的情况,它会通过创建一个sql语句然后调用我的函数将它插入到一个站点流量表中 mysqliconnection库
  • 然后该库获取sql语句,数据库,表,用户名和密码,并将站点流量调用插入到 对应表。

我在wordpress之外的所有页面上使用它,它工作正常,但在index.php页面上它根本不起作用。

我能够从wordpress index.php页面回显出sql语句,数据库,表格,用户名和密码,所以我知道它已经到了这一点。

编辑:使问题更加明显和具体

1 个答案:

答案 0 :(得分:0)

将此插入自定义插件或主题的functions.php。

以下是我如何去做的事情:

创建以下文件(包括目录):/ your-wp-root/wp-content/plugins/wpse-site-traffic/wpse-site-traffic.php

/**
 * Plugin Name: WPSE Site Traffic
 * Description: Woohoo - Site Traffic moved to a plugin.
 * Version: 1.0
 * Author: Dom
 */

// Load Site_Traffic Class.
require_once( ABSPATH . 'modules/Site-Traffic/Site-Traffic.php' );

/**
 * Create traffic object for tracking who is hitting this page. Hook
 * it into 'plugins_loaded' to run early.
 */
function wpse_site_traffic_load() {
    $site_traffic = new Site_Traffic();
    $site_traffic->SetTrafficLog();
}
add_action( 'plugins_loaded', 'wpse_site_traffic_load' );