MySQL查询在WordPress 4.2.2上不起作用

时间:2015-07-06 作者:Joci93

我的朋友制作了一个xml生成器插件,它在WP 3.5中运行良好,但我需要为4.2.2进行更新(因为安全性),插件现在说“未选择数据库”,但WP配置中的信息/数据。php文件正确。

插件:

<?php

    require_once(\'../../../wp-config.php\'); 

if(file_exists(\'../../../wp-config.php\')){
        echo \'Database is exist\';
    }else{
        echo \'n\';
    }
$xmlFile = plugin_dir_path( __FILE__ ).\'test.xml\';


unset($sitemapContent);
$sitemapContent = \'<?xml version="1.0" encoding="UTF-8" ?>\'."\\n";
$sitemapContent .= \'<products>\'."\\n";
$getProductsRes = mysql_query("SELECT * FROM wp_posts WHERE post_type = \'product\' AND post_status = \'publish\' AND post_parent = \'0\'");

    if($getProductsRes){

    }else{
        echo mysql_error();
    }
“数据库存在”可见,但未执行查询。

EDIT:哦,我找到了解决办法。在WP 3.9和heighter中,不再支持mysql\\U查询:Link

1 个回复
SO网友:Foae

首先尝试为自定义脚本“引导”WordPress:include \'../../../wp-load.php\' (您可能需要根据需要调整路径)。

然后可以安全地使用$wpdb类,例如$wpdb->get\\u results和其他好东西。不要忘记转义/清除传入的数据(如果有)。WordPress documentation on $wpdb

PS:始终尝试使用“内置”功能。上面的法典是金色的。

结束

相关推荐

JQuery函数在开发人员控制台中工作,但在其他情况下不起作用

有人能帮我利用原生wordpress jquery来运行我的函数吗?我所做的唯一工作测试是通过chrome开发控制台加载外部jquery资源,然后将我的函数添加到inspect元素控制台。工作测试:将其添加到控制台:if(!window.jQuery||confirm(\'Overwrite\\x20current\\x20version?\\x20v\'+jQuery.fn.jquery)) (function(d,s){s=d.createElement(\'script\');&#x