【问题标题】:WordPress - Check slug availabilityWordPress - 检查 slug 可用性
【发布时间】:2014-02-22 17:51:22
【问题描述】:

如何检查我的 WordPress 数据库中是否已存在 slug?

我想检查任何 slug(帖子、页面、分类和自定义帖子类型/分类)

谢谢

【问题讨论】:

  • 使用 wp_unique_post_slug() 获取唯一的 slug...如果您的 slug 存在,则此功能将为您提供后缀为 (-2, -3, -4...) 的新 slug...
  • 该死!我发帖后才看到这个。
  • @AkshayPaghdar 它检查所有 slug(页面、cpt ...)还是只发布 slug?谢谢
  • 完整的函数参数是这样的:-wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent )所以你可以在这个函数中提供post_type...

标签: wordpress slug


【解决方案1】:

http://codex.wordpress.org/Function_Reference/wp_unique_post_slug 有答案。如果你使用它给它想要的 slug,它会返回一个真正独一无二的。

【讨论】:

    【解决方案2】:

    我刚刚在这里回答了这个问题:https://wordpress.stackexchange.com/questions/25940/how-to-check-if-a-slug-exists/144439#144439

    不确定关于重复答案的政策是什么,但请看:

    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”替换为您想要测试的任何 slug。

    【讨论】:

    • 仅适用于 wp_ 前缀未更改的默认安装,正如您应该更改的那样。这将起作用:if($wpdb->get_row("SELECT post_name FROM ".$wpdb->prefix."posts WHERE post_name = '" . $post_name . "'", 'ARRAY_A')) {...
    【解决方案3】:

    使用WP_Query():

    $args = array(
      'post_type'    => 'custom-post-type',
      'name' => 'my-new-slug'
    );
    
    $query = new WP_Query($args);
    
    if ($query->post_count == 0) {
      // I am unique!
    }
    

    一般而言,WP_Query() 无需直接调用数据库,并使您的网站更易于维护。

    【讨论】:

      【解决方案4】:
      <?php
          $url = $_SERVER["REQUEST_URI"];
          $isItYourSlug = strpos($url, 'your_slug');
      
          if ($isItYourSlug!==false) {
              Do Something
          }
      ?>
      

      可以吗?它对我有用!

      【讨论】:

        猜你喜欢
        • 2012-01-08
        • 1970-01-01
        • 2016-09-24
        • 2019-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        相关资源
        最近更新 更多