1

我想知道这个简码在 wordpress 中应用的页面或帖子 ID。

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

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

4

2 回答 2

2

要获取当前页面的页面/帖子 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]"));
于 2019-03-31T02:08:24.383 回答
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; 
于 2019-03-31T20:24:02.593 回答