获取已发布的帖子和页面?

时间:2014-03-10 作者:Lisandro Vaccaro

我正在开发一个插件,在帖子和页面内容中使用gettext。

我试图获取所有已发布的帖子和页面,以便扫描它们以查找可翻译的字符串,但我不知道如何做到这一点。

这就是我正在尝试的:

$pages = $wpdb->query(\'SELECT * FROM wp_posts WHERE post_status = "publish"\');
foreach ( $pages as $post ) {
    print_r($post);
}

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

如果没有必要,请不要使用纯SQL。WordPress为检索post数据提供了一个有用且相对可靠的类。使用它。

$args = array(
  \'post_type\' => array(\'post\',\'page\'),
  \'post_status\' => \'publish\',
  \'posts_per_page\' => -1,
  \'ignore_sticky_posts\' => true,
);
$qry = new WP_Query($args);
// Show post titles
foreach ($qry->posts as $p) { 
    echo $p->post_title; 
}
参考文献:
http://codex.wordpress.org/Class_Reference/WP_Query

SO网友:user48752

Try this,

global $wpdb;

$posts = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_status = \'publish\'"));

foreach ( $posts as $post ) {
    print_r($post);
}
结束

相关推荐

Confused by $wpdb->prepare

我试图使用$wpdb->准备抵御SQL注入攻击,但我丢失了。下面有一段代码,它检查h\\U transactions表中的事务id。如果找不到id,则会将其添加到表中。。。<? global $wpdb; $table_name = $wpdb->prefix . \"h_transactions\"; $registered = $wpdb->get_var( \"SELECT COUNT(*) FROM $table_name WHERE transac