2017-08-24 102 views
0

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

+1

什么是你想实现与TIS。你是否试图在主题或后端编写查询? – tousif

+0

我正在看我的FileManager,在哪里哦,我会在哪里把我的代码? – blacksesame

回答

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 
"; 
?> 
+0

感谢您的帮助,但是我会在WordPress中放置这种代码? – blacksesame

0

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

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

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

谢谢

+0

感谢您的帮助,但是我在哪里可以将这种代码放在wordpress中? – blacksesame

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);