WordPress自定义查询WHERE?

时间:2017-08-24 07:30:42

标签: wordpress

我正在尝试在WordPress上查询我的页面上的一些数据,但我不确定在哪里实际放置我的SQL函数。这让我疯狂了2天并没有找到答案。我查看了我的phpadmin,wp-db.php ..我在这里遗漏了什么吗?有人可以发布这个开始的第一步吗?我有编写代码和SQL的经验,所以如果我只知道将代码放在哪里,我就可以开始了。非常感谢你的帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用WordPress查询从数据库中获取数据。您可以从$ wpdb中获取,而不是编写SQL查询。 query_posts()或WP_Query()是WordPress中的预定义函数。要获取所有网页,您只需使用:query_posts('post_type=page');类似帖子query_posts('post_type=post');

可以在args部分指定其他条件,即特定页面名称:

query_posts('post_type=page&post_name=contact');

谢谢

答案 1 :(得分:0)

以下是简单的示例查询:

<?php
global $wpdb;
global $post;
$querystr = "
SELECT DISTINCT wposts.* 
FROM $wpdb->posts wposts
LEFT JOIN $wpdb->postmeta wpostmeta ON wposts.ID = wpostmeta.post_id 
LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb-
>term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb-
>term_relationships.term_taxonomy_id = $wpdb-
>term_taxonomy.term_taxonomy_id)
WHERE wpostmeta.meta_key = 'customDateField'
AND wpostmeta.meta_value >= CURDATE()
AND $wpdb->term_taxonomy.taxonomy = 'category'
AND $wpdb->term_taxonomy.term_id IN(1,2)
ORDER BY wpostmeta.meta_value ASC
LIMIT 4
";
?>

答案 2 :(得分:0)

使用WP_QUERY类进行查询。您可以在主题的模板文件中编写代码。

$query = new WP_Query( array( 'post_type' => 'page', 'post__in' => array( 2, 5, 12, 14, 20 ) ) );

您可以在这里找到示例和文档。 https://codex.wordpress.org/Class_Reference/WP_Query

自定义查询使用wpdb类: https://codex.wordpress.org/Class_Reference/wpdb

// 1st Method - Declaring $wpdb as global and using it to execute an SQL query statement that returns a PHP object

global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT );

// 2nd Method - Utilizing the $GLOBALS superglobal. Does not require global keyword ( but may not be best practice )

$results = $GLOBALS['wpdb']->get_results( 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT );