php - 获取使用短代码的所有页面/帖子 ID

标签 php wordpress shortcode wordpress-shortcode

我想知道此短代码在 WordPress 中应用的页面或帖子 ID。

我在 WordPress 页面中使用了这个短代码“[qsm quiz=6]”,现在我想在使用此短代码的另一个页面中显示页面 ID。

示例:我在 2-3 个页面中使用了短代码,我希望将这些页面 ID 放在使用所有短代码的单个页面中。

最佳答案

要获取当前页面的页面/帖子 ID,您可以在短代码函数中使用 get_the_ID() 。无论您在何处应用短代码,这都会为您提供帖子/页面的 ID。

如果您想要使用该特定短代码的所有帖子/页面的列表,您可以使用以下函数。

function having_shortcode($str){
    $query = new WP_Query( "s='$str'" );
    $arr = array();
    if ($query->have_posts()){
      while ( $query->have_posts() ) { $query->the_post();
        $arr[] = get_the_ID().' '.get_the_title();
      } 
    }
    return $arr;
}

只需将短代码名称传递给函数,它就会为您提供使用短代码的帖子/页面的 ID 数组。

在您的情况下尝试这样做,您将获得所有 ID

print_r(having_shortcode("[qsm quiz=6]"));

关于php - 获取使用短代码的所有页面/帖子 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55435207/

相关文章:

php - 从 SQL 结果中过滤大数组

php - WooCommerce:如何通过短代码中指定的 ID 进行订购

php - 具有产品属性过滤功能的 Woocommerce 产品循环

javascript - 在按钮 onclick 中创建动态文本框并将数据保存到数据库

php - 使用 array_diff 比较关联数组和数值数组

php - 如何有效地使用多个 OR 语句

wordpress - 获取wordpress中搜索结果的总数

css - 如何显示特色图片?

jquery - 如何在元字段中创建画廊时获取 wp 画廊的简码

php - 如何在虚拟主机上连续运行 PHP 脚本?