drewbaker
  • 0
Новичок

Передача строки meta_box в post__in?

  • 0

Эй, ребята, я использую метабокс для хранения множества идентификаторов страниц. Когда я пытаюсь передать идентификатор страницы в параметр post__in WP_Query, он не работает, потому что метабокс передается в виде строки, когда он должен быть целым числом, разделенным запятыми.

Итак, скажем, метабокс «relatedpages» содержит: 55, 33, 22

$relatedpages = get_post_meta($post->ID, 'relatedpages', true);

$args = array(
    'post_type'         => 'page',
    'posts_per_page'    => -1,
    'order'         => 'ASC',
    'orderby'       => 'menu_order',
    'post__in'      => array($relatedpages)
    );

$myposts = get_posts($args);
echo $myposts;

Проблема в том, что $related pages теперь имеют «55, 33, 22», а не 55, 33, 22.

Как я могу преодолеть это? Есть ли способ хранить только целые числа в мета-поле, а не преобразовывать их в строку?

Спасибо, Дрю.

Share
  1. Кстати, для хранения идентификаторов вы используете настраиваемое поле. Чтобы ввести эти идентификаторы, вы используете настраиваемый метабокс.

    • 0
  2. 'post__in'      => explode( ',', $relatedpages )
    
    • 0
  3. Спасибо за помощь, но, в конце концов, я думаю, что проблема заключалась в том, что параметр post__in нельзя было использовать в get_posts, как я хотел. Согласно кодексу для get_posts, «включить» — это способ сделать это.

    $relatedpages = get_post_meta($post->ID, 'relatedpages', true);
    
    $args = array(
        'post_type'             => 'page',
        'posts_per_page'        => -1,
        'order'             => 'ASC',
        'orderby'           => 'menu_order',
        'include'           => $relatedpages
        );
    
    $myposts = get_posts($args);
    

    Спасибо, в любом случае!

    • 0

Оставить ответ

You must login to add an answer.