Как вставить / создать ассоциативный массив? - PullRequest
0 голосов
/ 03 июня 2018

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

while (have_posts()) : the_post();
    if( !in_array( $post->ID, $already_displayed_ids )) {
        array_push( $thisPostid, $post->ID );
        $title = get_the_title();
        $location = usp_get_meta(false, 'usp-custom-8');
        $link = get_permalink();
        $contentYear = usp_get_meta(false, 'usp-custom-14');
        if ($contentYear >= 0 && $contentYear <= 2019) {
            array_push($yearsArray, $contentYear);
            if (($wp_query->current_post +1) == ($wp_query->post_count)) {
                $yearsArray = array_unique($yearsArray);
                sort($yearsArray);
            }
        }
        array_push( $already_displayed_ids, $post->ID );
    }
endwhile;

В основном я запускаю цикл, я проверяю, нет ли дубликатов в$already_displayed_ids и мне нужно связать и нажать название, местоположение, дату и ссылку любого поста, который я нажимаю здесь array_push($yearsArray, $contentYear);

На данный момент я могу только нажать $contentYear, но это не такlink, title или location, связанные с помещаемым сообщением, я думал о создании ассоциативного массива, чтобы выдвинуть все спецификации, которые мне нужны для каждого сообщения.$contentYear - это настраиваемое поле с датой, поэтому я генерирую навигацию с этими значениями, они являются датами.Но мне нужно связать с каждой датой их заголовок, местоположение и ссылку, так как в настоящее время я не знаю, как поставить эти спецификации на время, которое я нажимаю.

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Вот как я решил это:

while (have_posts()) : the_post();
    if( !in_array( $post->ID, $already_displayed_ids )) {
        array_push( $thisPostid, $post->ID );
        $contentYear = usp_get_meta(false, 'usp-custom-14');
        if ($contentYear >= 0 && $contentYear <= 2019) {
            array_push($yearsArray, 
                array(
                    'year'=> $contentYear,
                    'link'=> get_permalink(),
                    'location'=> usp_get_meta(false, 'usp-custom-8'),
                    'title'=> get_the_title()
                )
            );
        }
        array_push( $already_displayed_ids, $post->ID );
    }
endwhile;

Тогда я могу сделать foreach ($yearsArray as $year) { и echo $year['title'] и т. Д.

0 голосов
/ 03 июня 2018

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

$posts = array();
if (have_post()) :
    while (have_posts()) :
        array_push($posts, 
            Array(
                'id'=>the_ID(),
                'quantity'=>1,
                'size'=>$size,
                'colour'=>$colour
            )
        );
    endwhile;
    $_SESSION['cart'] = $posts[0]; // change 0 index
endif;

Обратите внимание, что приведенный выше код не является идеальным, и вам, вероятно, следует делать это.Также вы можете захотеть использовать куки, а не сессии.

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