我有一个id:
$id = 151;
Run Code Online (Sandbox Code Playgroud)
我想检查这样的存在:
$content = get_post($id);
if ($content)
echo "post $id already exists";
else
echo "post $id does not exists or was deleted";
Run Code Online (Sandbox Code Playgroud)
但在WP论坛上似乎总是更喜欢问DB:
global $wpdb;
$post_exists = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE id = '" . $id . "'", 'ARRAY_A');
if ($post_exists)
echo "post $id exists";
else
echo "post $id does not exist";
Run Code Online (Sandbox Code Playgroud)
那么哪种方法最好?的确,我更喜欢第一个的轻松.
小智 27
我认为最好是尽可能少地直接查询数据库
您可以使用get_post_status()函数.
如果帖子不存在,则返回false
if ( get_post_status ( $post_id ) ) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
或者,确保帖子发布
if ( 'publish' == get_post_status ( $post_id ) ) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
http://codex.wordpress.org/Function_Reference/get_post_status
小智 6
if( is_null(get_post($id))){
echo "post $id does not exists or was deleted";
}else{
echo "post $id already exists";
}
Run Code Online (Sandbox Code Playgroud)