2

WordPressサイトで投稿を表示する順序を指定する投稿IDのコンマ区切りリストを生成するphp関数があります。

次のようなSQLクエリを挿入できる場所を探しています。

SELECT * FROM wp_posts WHERE ID IN ('1', '2', '3')

どの.phpファイルを変更する必要がありますか?SQLをどのように表現すればよいですか?

4

3 に答える 3

3

php関数をファイル(ルートワードプレスフォルダー)/wp-content/themes/(テーマの名前)/functions.phpに貼り付けます。SQLクエリは次のようになります。

$sql=$wpdb->prepare("SELECT * FROM wp_posts WHERE ID IN ('1', '2', '3');");
$results=$wpdb->get_results($sql);          
echo ">>>>".$result[0]->something."<br />";//blah blah...

うわー、私は$ wpdpをグローバルとして言及しませんでしたが、それでもコードは私のシステムで正常に機能していました!とにかく、関数に「グローバル$wpdb」と書くことをお勧めします。

ここでの主な質問は、この関数をどこから呼び出すべきかということです。あなたはtheme/(あなたのテーマ)/index.phpからそれを呼び出さなければなりません

現在のテーマで投稿がどのように生成されるかを理解してみてください。そうすれば、必要なことができるかもしれません。

于 2012-07-11T15:55:26.047 に答える
2

まず、これに使用する必要がありますwp_query。投稿をクエリするように設計されています。

<?php
$args = array(
    'post__in' => array ( 1,2,3) //the Ids
);
$query = new WP_Query($args);
if ($query->have_posts()){
    while ($query->have_posts()) {
        $query->the_post();
        echo get_the_ID().'<br/>';
    }

} else {
    echo 'no posts found';
}

配置については、カスタムテンプレート
で 行うことをお勧めします。上記のコードを使用して単純なテンプレートを作成し、ページを作成してそのテンプレートを割り当て、ページを非公開にします。

于 2012-07-08T20:24:35.637 に答える
1
global $wpdb; $results = $wpdb->get_results("SELECT * FROM {$wpdb->posts} WHERE ID IN (1, 2, 3) ORDER BY ID");

これは、テーマのfunctions.phpファイルで使用できます。

于 2012-07-04T03:39:09.687 に答える