Как сохранить массив из случайной последовательности для последующего использования?

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

Я объясню.

Генератор должен работать на двух основных этапах:

  1. Вы выбираете, насколько сильно вы хотите тренироваться, и как долго это займет время.

    Эти значения передаются на новую страницу через строку URL. Это создает случайную тренировку (код внизу вопроса) путем отображения случайных сообщений на основе параметров из строки и кода на динамической странице ('/ your-workout /')

  2. Если вам нравится тренировка, я хочу, чтобы вы могли сохранить этот случайный массив сообщений, чтобы использовать его позже.

    1. Идентификаторы сообщения, отображаемого в этой случайной последовательности, сохраняются в массиве.
    2. Когда пользователь хочет сохранить тренировку для повторного использования позже, этот массив идентификаторов сообщений используется для создания новой страницы WordPress с содержимым, заполненным этими конкретными сообщениями в этом конкретном порядке. Это будет дочерняя страница ('/ your-workout /'), созданная с помощью «сохранения» тренировки.

Шаг 2 – это именно то, где я застрял.

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

Соответствующий код для шага 1:

<?php global $post; if (isset($_GET['dm'])) { //Check DM is set $mode = $_GET['dm']; //Get DM Value - will define CPT's taxonomy } if (isset($_GET['e'])) { //Check E is set $posts = $_GET['e']; //Get E value - will define how many posts are shown } $my_query = new WP_Query( "post_type=bw-exercise&orderby=rand&difficulty-mode=$mode&showposts=$posts");?> //Define query using pre-set and URL String values <?php if ( $my_query->have_posts() ) { while ( $my_query->have_posts() ) { $my_query->the_post();?> <div class="workout"> <div class="workout-reps"><?php echo get_post_meta(get_the_id(), "wpcf-reps", true);?></div> <div class="workout-info"><?php the_title('<div class="workout-name">', '</div>');?> <div class="workout-desc"><?php the_content();?></div> </div> <div class="workout-link"><a href="<?php the_permalink();?>" target="_blank"><img src="<?php bloginfo('template_url');?>/custom/images/i.jpg"></a></div> </div> <?php } } ?> <?php wp_reset_postdata();?> 

Если я могу быть яснее, пожалуйста, дайте мне знать.

Благодаря!

Р 🙂

Мое предложение состоит в том, чтобы сохранить тренировки как новую запись в метаданных конкретного пользователя.

»Сохранение одной тренировки

Предположим, что тренировка состоит из идентификаторов упражнений 1, 3, 5, 9 . Тогда код:

 // this is the current workout $workout = array(1, 3, 5, 9); // get the current user $user = wp_get_current_user(); // update the user's meta data update_user_meta($user->ID, 'saved_workout', $workout); 

В принципе, вот и все.

Однако, если вы хотите, чтобы пользователь мог хранить несколько тренировок, вам может понадобиться получить текущий (-ы), затем добавить новый и, наконец, обновить данные. Это может выглядеть так:

»Сохранение нескольких тренировок

 // this is the current workout $workout = array(1, 3, 5, 9); // get the current user $user = wp_get_current_user(); // get saved workout(s), ... $saved_workouts = get_user_meta($user->ID, 'saved_workouts'); if (! $saved_workouts) $saved_workouts = array(); // ... add current workout ... $saved_workouts[] = $workout; // ... and update the user's meta data update_user_meta($user->ID, 'saved_workouts', $saved_workouts); 

Еще раз, это только основная идея.

Возможно, вы захотите предоставить пользователю некоторые средства для доступа к сохраненным тренировкам и, возможно, редактировать / удалять и т. Д.