【问题标题】:Having Trouble Running A Custom Query In Wordpress在 Wordpress 中运行自定义查询时遇到问题
【发布时间】:2021-04-20 08:58:23
【问题描述】:

好的,我已经盯着这个看了好几个小时了,我看不出有什么问题。我希望你们中的一个超级聪明的人能看到我的错误。我已经复制了 select 语句并在 PHPMYAdmin 上运行它,它在那里运行正常,但它在 Wordpress 中没有返回任何结果。我还验证了 2 个变量的填充是否正确。

$user = wp_get_current_user();
$terms = wp_get_object_terms($user->ID, 'departments');
$term = $terms[0]->term_id;

$results = $wpdb->get_results(
        $wpdb->prepare(
        "SELECT post_title, post_content
        FROM wp_posts
        INNER JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id
        INNER JOIN wp_term_relationships ON wp_posts.id = wp_term_relationships.object_id
        WHERE post_type = 'events'
        AND meta_key = 'event_date'
        AND meta_value = %s
        AND term_taxonomy_id = %s"),array($date,$term));

如果我对 $results 进行 var_dump,我只会得到 NULL。

【问题讨论】:

  • 是直接在db上运行的查询返回值吗?
  • 我错过了执行语句,->prepare,->execute,->get_result
  • @LelioFaieta 是的,当我直接运行查询时,它会返回预期结果。
  • @Grumpy $wpdb->get_results() 自动执行查询。docs.w3cub.com/wordpress/classes/wpdb/get_results
  • @RickJames 我不明白这是怎么应用的?

标签: mysql wordpress mariadb


【解决方案1】:

您的准备​​语句中有错误...array($date,$term) 需要在准备函数中。

示例

// Bad- args outside of prepare
$results = $wpdb->get_results($wpdb->prepare($sql), $args);

// Good- args inside prepare
$results = $wpdb->get_results($wpdb->prepare($sql, $args));

相关文档

代码解决方案

$user = wp_get_current_user();
$terms = wp_get_object_terms($user->ID, 'departments');
$term = $terms[0]->term_id;
$results = $wpdb->get_results(
  $wpdb->prepare(
    "SELECT post_title, post_content
    FROM wp_posts
    INNER JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id
    INNER JOIN wp_term_relationships ON wp_posts.id = wp_term_relationships.object_id
    WHERE post_type = 'events'
    AND meta_key = 'event_date'
    AND meta_value = %s
    AND term_taxonomy_id = %s",
    array($date,$term)
));

【讨论】:

  • 非常感谢。我知道这会是我想念的愚蠢的东西我只是看不到它
  • 非常乐意提供帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-27
相关资源
最近更新 更多