如何检查是否存在弹头?

时间:2011-08-15 作者:lulalala

我有一个任意字符串,想检查站点中是否存在带有该段塞字符串的帖子。我试图找到一种列出所有鼻涕虫的方法,但找不到这样的东西。谢谢

5 个回复
SO网友:Nathan

这是您正在寻找、测试的内容,我在自己的网站上使用它:

function the_slug_exists($post_name) {
    global $wpdb;
    if($wpdb->get_row("SELECT post_name FROM wp_posts WHERE post_name = \'" . $post_name . "\'", \'ARRAY_A\')) {
        return true;
    } else {
        return false;
    }
}
然后,您可以这样使用它:

if (the_slug_exists(\'contact\')) {
    // do something
}
更换contact 用你想测试的鼻涕虫。

SO网友:Rarst

你的意思是后鼻涕虫?你可以试着利用wp_unique_post_slug() WP用来生成这些。如果我没记错的话,如果您尝试使用的slug不是唯一的,它将返回并附加数字索引。

SO网友:Kayo

$args = array(\'name\' => $slugName, \'post_type\' => $postType); 

$slug_query = new WP_Query($args);
echo "<pre>";
var_dump($slug_query);
exit;
这样,您就有了足够的信息来测试帖子是否被退回,希望这能有所帮助。

SO网友:Kevin Leary

这种更简单的方法怎么样?

$post_exists = get_page_by_path( $slug, OBJECT, $post_type );
if ( ! $post_exists )
    echo \'No post exists with this slug.\';
如果给定slug和提供的post类型不存在post,则get_page_by_path() 返回null。

SO网友:T.Todua
$your_slug = \'my-pageeeeeee\';
$wpdb = $GLOBALS[\'wpdb\'];



//==================FIRST method======================
    $id = $wpdb->get_var($wpdb->prepare("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = \'%s\' AND ( post_type = \'page\' OR post_type = \'post\') ", $slug) );
    if (!empty($id)) {
        //............
    }





//====================SECOND method======================
    $counts = $wpdb->get_var($wpdb->prepare("SELECT count(post_name) FROM ".$wpdb->posts ." WHERE post_name like \'%s\'", $slug) );
    if ($counts >=1 ) {
        //.............
    }
结束

相关推荐

如何从wp数据库中获取NAV_MENU_ITEM_ID和SLUG

您好WordPress专家,请帮助我,我想通过给定一个页面模板(store.php)从wp数据库中获取nav\\u menu\\u item\\u id和slug这是一个页面模板,以及我们如何获取使用此页面模板的nave menu item id和slug