Wordpress 如何将此元查询转换为sql?
我的自定义个人Wordpress主题中有一个有效的Wordpress 如何将此元查询转换为sql?,wordpress,Wordpress,我的自定义个人Wordpress主题中有一个有效的元查询。我想将其转换为SQL查询,但不知道如何将其转换为WP SQL并添加额外的排序参数。有人能帮我把这个meta_查询转换成WP-SQL吗 $metakey = "series"; $args = array( 'meta_query' => array( array( 'key' => 'series' ) ), 'orderby' => 'm
元查询。我想将其转换为SQL查询,但不知道如何将其转换为WP SQL并添加额外的排序参数。有人能帮我把这个meta_查询转换成WP-SQL吗
$metakey = "series";
$args = array(
'meta_query' => array(
array(
'key' => 'series'
)
),
'orderby' => 'meta_value',
'order' => 'ASC',
'ignore_sticky_posts' => 1,
'posts_per_page' => -1
);
如果您计划使用普通sql查询。请务必加入以下表格
wp_posts,wp_meta
使用这两个表的关系生成SQL语句 您的$args
将转换为此sql
查询:
SELECT wp_posts.* FROM wp_posts
INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
WHERE 1=1
AND (wp_postmeta.meta_key = 'series')
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value ASC
因此,如果您希望使用它,您的代码将是:
$query = "SELECT $wpdb->posts.* FROM $wpdb->posts
INNER JOIN $wpdb->postmeta ON ( $wpdb->posts.ID = $wpdb->postmeta.post_id )
WHERE 1=1
AND ($wpdb->postmeta.meta_key = 'series')
AND $wpdb->posts.post_type = 'post'
AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'private')
GROUP BY $wpdb->posts.ID ORDER BY $wpdb->postmeta.meta_value ASC ";
您可以在WordPress的模板中使用它。如果要在某个插件/函数文件中使用,请首先从global
范围调用$wpdb
(或者您将得到未定义的警告):
你说的WP-SQL是什么意思?我的意思是:谢谢。你能说得更准确些吗?
global $wpdb;