我在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时它不起作用?
答案 0 :(得分:0)
您需要单独包含wp-load.php。它将加载wp-include(和wpdb),插件和你的主题(functions.php)。要直接使用数据库,您可以这样做:
global $wpdb;
$wpdb->get_results('select ...');
如果你需要访问在functions.php中声明的变量,它是直接的:
<?php
include 'var.php';
print_r( $moo );
?>
<?php
$moo= 'cow';
?>
$ 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....
}