retrieve the oldest post id

时间:2012-06-25 作者:Pam Apple

我正在用post_type = job_listingpost_status = publish. 我正在使用下面的代码,但它不起作用。谁能帮帮我吗

$oldestID = mysql_query("select id from wp_posts where post_type = \'job_listing\' and post_status = \'publish\' order by post_date ASC");

谢谢

1 个回复
最合适的回答,由SO网友:HungryCoder 整理而成

我认为您的查询没有任何问题(除了一些糟糕的查询编写风格)。你没有解释“不起作用”。你得到了什么回报?你有什么错误吗?

可能你没有published job_listing!

但是,以下是如何改进给定代码:

$oldest_post_id = $wpdb->get_row("SELECT `id` FROM {$wpdb->posts} WHERE `post_type` = \'job_listing\' AND `post_status` = \'publish\' ORDER BY `post_date` ASC");
请注意$wpdb->posts 部分这将在任何wordpress安装中安全工作,即使使用自定义表前缀。

您不应该使用mysql_query 直接地如果在函数中使用此查询,则需要包括$wpdb 您的职能如下:

function myfunc(){
  global $wpdb;
  $wpdb->show_errors(true);
  $oldest_post_id = $wpdb->get_row("SELECT `id` FROM {$wpdb->posts} WHERE `post_type` = \'job_listing\' AND `post_status` = \'publish\' ORDER BY `post_date` ASC");
  var_dump($oldest_post_id);
}
现在,应该显示任何查询错误(如果有),并且var_dump() 应该给你的职位ID。否则,请返回给我们什么是返回。工作时移除3rd5th 第二个示例中的行。

结束