0

wordpress で特定の投稿の termid を取得するための SQL クエリを教えてください。これを取得するビルド関数のワードプレスを知っています。しかし、生の SQL クエリが必要です。

4

2 に答える 2

0
SELECT ID FROM wp_posts WHERE ...

これは、WordPress の典型的な単一インストールを想定しています。マルチサイト インストールおよびテーブル プレフィックスが変更されたインストールでは、posts テーブルの wp_ 部分に異なるプレフィックスが付けられます。

WHERE 句の後に何が続くかは、投稿を取得しようとしている方法によって異なります。

たとえば、「Select Me」というタイトルの投稿が必要であることがわかっている場合は、次のように使用できます。

SELECT ID FROM wp_posts WHERE post_title LIKE '%select me%';

もちろん、LIKE は必須ではありません。これは、大文字と小文字の問題を回避したり、部分的な文字列で選択したりするために使用するショートカットです (これは遅くなる可能性があります)。

データベース名とその他の情報は、WordPress の構成ファイルにあります。テーブル名が不明な場合は、コマンド ライン プロンプトから describe を使用するか、phpMyAdmin などの Web ベースのツールに接続します。

幸運を。

于 2013-09-22T03:23:12.987 に答える
0

カテゴリには複数の用語が存在する可能性があるため、join以下の表を使用して、where 句に投稿 ID を指定できます。

SELECT t.* FROM `wp_terms` t
INNER JOIN `wp_term_taxonomy` tt ON (t.`term_id` =tt.`term_id`)
LEFT JOIN `wp_term_relationships` ttr ON (tt.`term_taxonomy_id`= ttr.`term_taxonomy_id`)
LEFT JOIN `wp_posts` p ON (ttr.`object_id` = p.`ID`) WHERE p.`ID`=23 
// example post id is 23

wpでは、クラスリファレンスwpdbを使用できます

global $wpdb;

$terms=$wpdb->get_results("SELECT t.* FROM $wpdb->prefix.`terms` t
    INNER JOIN $wpdb->prefix.`term_taxonomy` tt ON (t.`term_id` =tt.`term_id`)
    LEFT JOIN $wpdb->prefix.`term_relationships` ttr ON (tt.`term_taxonomy_id`= ttr.`term_taxonomy_id`)
    LEFT JOIN $wpdb->prefix.`posts` p ON (ttr.`object_id` = p.`ID`) WHERE p.`ID`=23 ");

簡単に、カテゴリの配列を返すWP のget_the_category()を使用できます。

于 2013-09-22T05:45:18.917 に答える