转换成WP_Query()?

时间:2015-09-11 23:04:37

标签: php mysql wordpress

我是sql查询的新手可以有人帮我翻译一个sql查询到wp查询,使其自动运行或安排?

我需要在sql上安排一个事件,但遗憾的是我的主机不允许我打开事件调度程序,因为我只使用共享主机帐户。

是否可以使用wp查询自动推送此查询?

这是我的查询

SELECT title AS ApplicationType,
value AS ApplicationStatus
FROM sfda_rg_form, sfda_rg_lead_detail
WHERE value = 'Pending'
OR value = 'Approved'
OR value = 'Rejected'

提前致谢

1 个答案:

答案 0 :(得分:1)

使用$wpdb,您只需运行查询,而无需使用任何特殊结构。在你的情况下,甚至没有变量准备。所以这会奏效:

global $wpdb;
$query = "SELECT title AS ApplicationType, value AS ApplicationStatus FROM sfda_rg_form, sfda_rg_lead_detail WHERE value = 'Pending' OR value = 'Approved' OR value = 'Rejected'";
$results = $wpdb->get_results($query);

如果您要问的是wordpress中是否存在某种允许在服务器的cron作业之外运行的计划任务的机制,那么我可能会说不,虽然我不是100%肯定。很大程度上是因为它需要触发服务器才能触发 - 换句话说,有人需要为该触发器加载一个页面,而不是在cron选项卡中专门设置,你已经声明这不是一个选项。

因此,如果您想知道如何使用wordpress $ wpdb运行该查询,使用连接和配置设置 - 那么这对您有用。

如果您在询问是否可以在cron选项卡外的WP中运行计划任务,那么最终会由其他人明确说出。

更新

如果您希望仅按需运行此功能,可将其放在functions.php文件中

function run_task(){
    global $wpdb;

    $query = "SELECT title AS ApplicationType, value AS ApplicationStatus   FROM sfda_rg_form, sfda_rg_lead_detail WHERE value = 'Pending' OR value = 'Approved' OR value = 'Rejected'";
    $results = $wpdb->get_results($query);

    // do something with the results
}

然后按你喜欢的方式打电话。以下是使用$ _GET ...

的示例
//in functions.php also include this
if(isset($_GET['run_task']))
{
    run_task();
}

现在您可以通过将run_task参数添加到get vars来运行任务: http://www.yoursite.com/?run_task

通常params有值,所以如果你与其他任何东西复合,那么做一些像/?run_task = 1& foo = bar

这样的事情可能是理智的。

...等