Получить все идентификаторы страниц / постов, где используется короткий код - PullRequest
0 голосов
/ 30 марта 2019

Я хочу знать идентификатор страницы или записи, где этот шорткод применяется в WordPress.

Я использовал этот шорткод «[qsm quiz = 6]» на странице WordPress, теперь я хочу показать идентификатор страницы на другой странице, где используется этот шорткод.

Пример: я использовал шорткод на 2-3 страницах, и я хочу, чтобы эти идентификаторы страниц были на одной странице, где используется весь этот шорткод.

Ответы [ 2 ]

1 голос
/ 31 марта 2019

Чтобы получить идентификатор страницы / записи текущей страницы, вы можете использовать get_the_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;
}

Просто передайте имя шорткода функции, и он даст вам массив идентификаторов постов / страниц, которые используют шорткод.

В вашем случае попробуйте сделать это, и вы получите все идентификаторы

print_r(having_shortcode("[qsm quiz=6]"));
0 голосов
/ 31 марта 2019

Я стараюсь много, но в «Последнем» я нашел для этого лучший ответ.

Использовал этот код

global $wp, $wpdb;

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

echo $page_id; 
...