Je construis un générateur d'entraînement aléatoire sur Wordpress pour l'aider à rester en forme, et je suis coincé dans la sauvegarde des tableaux de messages aléatoires pour référence ultérieure.
Je vais t'expliquer.
Le générateur devrait fonctionner en deux étapes principales:
Vous choisissez la durée de l'entraînement et le temps que cela prend.
Ces valeurs sont transmises à une nouvelle page via la chaîne d'URL. Cela crée un entraînement aléatoire (code au bas de la question) en affichant des publications aléatoires en fonction des paramètres de la chaîne et du code sur une page dynamique ('/ your-workout /')
Si vous aimez la séance d'entraînement, je veux que vous puissiez sauvegarder ce tableau aléatoire de messages pour pouvoir le réutiliser plus tard.
L'étape 2 est spécifiquement où je suis coincé.
Comment puis-je enregistrer les ID de publication d'un tableau aléatoire et les utiliser pour créer une nouvelle page enfant qui affiche cette séquence spécifique?
Code pertinent pour l'étape 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();?>
Si je peux être plus clair, s'il vous plaît faites le moi savoir.
Merci!
R :)
Ma suggestion est de stocker les entraînements en tant que nouvelle entrée dans les métadonnées de l'utilisateur.
Supposons que l'entraînement consiste en l'identifiant de l'exercice 1, 3, 5, 9
. Alors le code est:
// 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);
En gros, c'est ça.
Cependant, si vous souhaitez que l'utilisateur puisse stocker plus d'un entraînement, vous pouvez obtenir le ou les exercices actuels, puis ajouter le nouveau et enfin mettre à jour les données. Cela pourrait ressembler à ceci:
// 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);
Encore une fois, ce n’est que l’idée de base.
Peut-être voudrez-vous donner à l'utilisateur un moyen d'accéder aux entraînements sauvegardés, et peut-être éditer/supprimer, etc.