2017-08-24 6 views
0

私はWordPressのページにいくつかのデータを照会しようとしていますが、実際にSQL関数を置く場所がわかりません。それは2日間私を夢中にさせ、答えを見つけられませんでした。私は私のphpadmin、wp-db.phpを見てきました。私はここで何かを逃していますか?誰かがこれを開始するための非常に最初のステップを投稿していただけますか?私はコードとSQ​​Lを書く経験があるので、私のコードをどこに置くべきか分かっていれば、私は始めてもいいのです。手伝ってくれてどうもありがとう。あなたのデータベースからデータをフェッチするためにWordPressのクエリを使用することができますWordPressカスタムクエリWHERE?

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

あなたはTISと達成するために何をしようとしています。テーマやバックエンドにクエリを書き込もうとしていますか? – tousif

+0

私は私のコードをどこに置くのですか? – blacksesame

答えて

0

は、ここで簡単な例クエリです。 SQLクエリを書く代わりに、$ wpdbから取得できます。 query_posts()またはWP_Query()は、WordPressの事前定義された関数です。すべてのページをフェッチするために、あなただけ使用することができます。query_posts('post_type=page'); similarlly投稿をquery_posts('post_type=post');

その他の条件、すなわち、特定のページ名のために、引数セクションで指定することができます。

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

+0

あなたの助けていただきありがとうございますが、私はどこにワードプレスでこの種のコードを入れますか? – blacksesame

0

+0

あなたの助けていただきありがとうございますが、私はどこにワードプレスでこの種のコードを入れますか? – 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); 
関連する問題