WP Shortcode для отображения постов по ID - PullRequest
0 голосов
/ 18 февраля 2019

В настоящее время у меня есть шорткод, который отображает определенный набор сообщений, указав идентификатор сообщения внутри функции.Но я бы хотел изменить это, чтобы пользователь мог указывать идентификаторы постов в качестве атрибутов шорткода.

В настоящее время

[fsgrid]

Желательно:

[fsgrid id="1, 2, 3"]

Вот текущийкод

public function shortcode_handler($atts) {
    $atts = shortcode_atts(
      array(
        'posts_per_page' => 100 ,
        'orderby' => 'post__in',
        'post__in' => array(1, 2, 3)
      ), $atts, 'fsgrid'
    );

    return $this->grid($atts);
  }

Как это изменить?Любая помощь очень ценится.

1 Ответ

0 голосов
/ 18 февраля 2019

explode будет вашим лучшим вариантом.Сначала извлеките атрибуты shortcode ids, а затем разбейте запятую в массив.

См .: https://codex.wordpress.org/Function_Reference/shortcode_atts

public function shortcode_handler($atts) {
    extract(shortcode_atts(array(
        'id' => null
    ), $atts, 'fsgrid'));    


   $post_ids = explode(",", strval($id));

   $args = array(
        'posts_per_page' => 100 ,
        'orderby' => 'post__in',
        'post__in' => $post_ids
      );

    return $this->grid($args);
  }

Затем вы называете шорткод [fsgrid id="1,2,3"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...