我有一个 php 函数,它生成一个逗号分隔的帖子 ID 列表,指定这些帖子应该在我的 WordPress 网站上显示的顺序。
我正在寻找一个可以插入 SQL 查询的地方,例如:
SELECT * FROM wp_posts WHERE ID IN ('1', '2', '3')
我应该修改哪个 .php 文件?我应该如何表达 SQL?
将您的 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 调用它
尝试弄清楚帖子是如何在您当前的主题中生成的,您可能会得到您需要做的事情!
首先,您应该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';
}
关于放置
,我建议在自定义模板中进行,使用上面的代码制作一个简单的模板,创建一个页面,为其分配该模板并将页面设为私有。
global $wpdb; $results = $wpdb->get_results("SELECT * FROM {$wpdb->posts} WHERE ID IN (1, 2, 3) ORDER BY ID");
您可以在主题的 functions.php 文件中使用它。