在MySQL中删除具有特定类别ID的所有帖子的自定义字段

时间:2019-06-11 作者:Philip

删除mysql中具有特定类别id的所有帖子的自定义字段

我正在尝试从类别id为“66”的帖子中删除所有键为“key1”的自定义字段。

我可以通过以下mysql查询删除键为“key1”的所有自定义字段:delete FROMwp_postmeta 其中meta\\u key=\'key1\'

如何在该查询中指定类别?

1 个回复
最合适的回答,由SO网友:Milan Hirpara 整理而成

请尝试以下代码:

$pro_args = [];
$pro_args[\'post_type\'] = \'post\';  //Replace your post type
$pro_args[\'post_status\'] = \'publish\';
$pro_args[\'posts_per_page\'] = -1;
$pro_args[\'tax_query\'] = array(
    array(
      \'taxonomy\' => \'category\', //Replace your taxonomy name
      \'field\' => \'id\',
      \'terms\' => array( 66 ),
    )
);

// Optional
$pro_args[\'meta_query\'] = array(
    \'relation\' => \'AND\',
    array(
        \'key\'     => \'key1\',
        \'compare\' => \'EXISTS\',
    )
);

$pro_query  = new WP_Query( $pro_args );

if ( $pro_query->have_posts() ) {

    while ( $pro_query->have_posts() ) { $pro_query->the_post();

        delete_post_meta( get_the_ID(), \'key1\' );

    }

}

wp_reset_postdata();

相关推荐

获取隐藏输入的值以在php MySQL查询中使用它们

我试图更新数据库中的一个值,为此,我将输入的值和ID传递给另一个隐藏输入,并通过jquery提交表单,这些值在隐藏输入中设置(测试)。但是我无法让他们传递到PHP并执行查询,我做错了什么? <?php global $wpdb; $results = $wpdb->get_results( \"SELECT * FROM $wpdb->users\" ) ?> <form id=\"form1\">