获取所有使用简码的页面/帖子ID

时间:2019-03-30 19:58:28

标签: php wordpress shortcode wordpress-shortcode

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

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

示例:我在2-3页中使用了简码,并且我希望这些页面ID在使用所有简码的单个页面中。

2 个答案:

答案 0 :(得分:1)

要获取当前页面的页面/帖子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]"));

答案 1 :(得分:0)

我尝试了很多,但最后我找到了这个最佳答案。

使用此代码

global $wp, $wpdb;

$page_id = $wpdb->get_var('SELECT ID FROM '.$wpdb->prefix.'posts WHERE post_content LIKE "%[qsm quiz=6]%"');

echo $page_id;