Wordpress使用functions.php中的外部查询结果

时间:2014-03-16 08:44:29

标签: php wordpress

我在wordpress之外有一个自定义的php页面,这个页面也连接到一个外部数据库,并获得resultat形式的sql查询变量

我使用require('../wp-blog-header.php')require('../wp-load.php')与wordpress集成。

现在我需要在我的wordpress主题的functions.php上使用这个变量。

我在外部页面上执行操作:

<head>
<connect to my database>
<my query>
<get resulte on $variable>
<require('../wp-blog-header.php')>
<require('../wp-load.php')>

但是当我在我的functions.php上使用$ variable时它不起作用?

2 个答案:

答案 0 :(得分:0)

您需要单独包含wp-load.php。它将加载wp-include(和wpdb),插件和你的主题(functions.php)。要直接使用数据库,您可以这样做:

global $wpdb;
$wpdb->get_results('select ...');

如果你需要访问在functions.php中声明的变量,它是直接的:

say.php

<?php
include 'var.php';
print_r( $moo );
?>

var.php

<?php
$moo= 'cow';
?>

say.php

的输出
$ php say.php 
cow

在wp-load.php之后加载(包含或要求)functions.php将导致在functions.php中定义的函数重新声明(它将被加载两次),导致PHP崩溃。

答案 1 :(得分:0)

除非您在外部查询中使用wordpress功能,否则无需包含wordpress文件。

您的external.php看起来像

function handy_prefix_my_processing_function() 
{

    //connect to database...
    //Do something with data...

    $result = $results

    //return the result
    return $result;

}

然后在functions.php中

function handy_prefix_get_my_variable() 
{
    //Load the external file and make its functions available
    include_once( 'external.php' );

    //Get my result
    $result = handy_prefix_my_processing_function();

    //Do something with the result....

}