从meta_key和meta_value获取POST

时间:2019-03-15 作者:A new 1

我有以下sql语句:

SELECT post_id FROM wp_postmeta WHERE meta_key = $param1 AND meta_value = $param2
我面临一个问题:

我不知道怎么做sql 具有wordpress功能的代码。我已经阅读了手册get_posts() 等等(虽然我可能错过了一些东西),但我还没有找到实现这一点的方法。

你能帮助我,给我一个方法或提示吗。

提前感谢

2 个回复
最合适的回答,由SO网友:Prince 整理而成

您可以使用SQL

global $wpdb;

// For single record
$wpdb->get_row("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = $param1 AND meta_value = $param2");

// For multiple records
$wpdb->get_results("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = $param1 AND meta_value = $param2" );
将此用于查询

 $args = array(
        \'posts_per_page\' => 10, // -1 for all posts
       \'meta_query\' => array(
           array(
               \'key\' => \'your_meta_key\',
               \'value\' => \'your_meta_value\',
               \'compare\' => \'=\',
           )
       )
    );
    $the_query = new WP_Query($args);

// The Loop
if ( $the_query->have_posts() ) {
    echo \'<ul>\';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo \'<li>\' . get_the_title() . \'</li>\';
    }
    echo \'</ul>\';
    /* Restore original Post Data */
    wp_reset_postdata();
} else {
    // no posts found
}

SO网友:Pratik Patel

尝试以下方式:

global $wpdb;

$post = $wpdb->get_results(\'SELECT post_id FROM wp_postmeta WHERE meta_key = $param1 AND meta_value = $param2\');
使用Wordpress默认方法:

$args = array(
    \'posts_per_page\'   => -1,
    \'meta_query\' => array(
        array(
            \'key\'     => \'YOUR KEY\',
            \'value\'   => \'YOUR VALUE\',
            \'compare\' => \'=\',
        ),
    ),
);

$posts = get_posts( $args );
然后打印的结果$post 喜欢print_r($post) 检查一下你有没有post_id 或者不是。如果有任何疑问,请告诉我。

希望这会有帮助!

相关推荐

更新MySQL查询以使其再次运行

我继承了一个我的客户不想重建的旧WordPress站点。函数中有一个旧的MySQL查询。主题的php,应该将类别图像与类别放在一起。当然,随着时间的推移,WordPress已经更新,查询也不再有效。我希望有人能帮我建议如何更新这个。代码为:function catImg($catId){ $data = mysql_fetch_object(mysql_query(\'SELECT * FROM `wp_ig_caticons` WHERE `cat_id` = \"\'. $catId