2

我有一个 php 函数,它生成一个逗号分隔的帖子 ID 列表,指定这些帖子应该在我的 WordPress 网站上显示的顺序。

我正在寻找一个可以插入 SQL 查询的地方,例如:

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

我应该修改哪个 .php 文件?我应该如何表达 SQL?

4

3 回答 3

3

将您的 php 函数粘贴到文件(根 wordpress 文件夹)/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 是全局的,我的系统上的代码仍然可以正常工作!无论如何,我建议您在函数中编写“global $wpdb”。

现在的主要问题是你应该从哪里调用这个函数;你必须从 theme/(your 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 回答