Могу ли я FOREACH по аргументам, который представляет собой комбинацию $ query_string и других аргументов? - PullRequest
0 голосов
/ 10 июля 2020

Я могу показать ожидаемые сообщения $ args_normal в приведенном ниже коде. Однако я не могу выполнить команду $ args_normal. Когда я пытаюсь выполнить его, он постоянно показывает заголовок сообщения. Как я могу правильно выполнить его?

<?php
$week = date('Y-m-d', strtotime('+7days'));
$name= get_search_query();
global $query_string;
$args = $query_string;
parse_str( $args, $args );
$args_normal = $args + array(
'posts_per_page' => -1,
'meta_query' => array(
                    array(
                    'key'=> '2a',
                    'value' => array('2020-02-01' , $week),
                    'compare' => 'BETWEEN',
                    'type' => 'DATE',
                    ), 
                    ), 

);
?>

<?php $my_posts = get_posts($args_normal);

if ( $my_posts ) {
foreach( $my_posts as $post ) {
$title = get_the_title( $post->ID);
}}
echo $title;
var_dump($my_posts);
?>
<?php wp_reset_postdata(); ?>

1 Ответ

1 голос
/ 10 июля 2020

Я добавляю в качестве ответа, поскольку комментарий был бы слишком длинным:

  1. В обновленном коде вы получаете только один заголовок из echo $title, потому что он находится за пределами foreach , поэтому он даст вам только последний.
  2. Когда вы var_dump($my_posts), лучше сделать это (это действительно мнение) сразу после $my_posts = get_posts($args_normal); var_dump($my_posts), так как вы хотите видеть данные, которые вы получаете ПРЕЖДЕ ЧЕМ пробовать и л oop через него.
// Get your posts.
$my_posts = get_posts($args_normal);

// If you have posts
if ( $my_posts ) {
    // Loop through the posts
    foreach( $my_posts as $post ) {
       // no need to assign to a variable, just echo get_the_title()
       echo get_the_title( $post->ID);
    }
}

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