私は私のフィットネスを助けるためにWordpress上でランダムなトレーニングジェネレータを構築しています、そして後で参照するためにランダムなポスト配列を保存することに行き詰まっています。
説明します。
ジェネレータは2つの主な段階で動作するはずです。
あなたはあなたがあなたがあなたがあなたがトレーニングをどのくらい難しいものにしたいか、そしてどれくらいの時間がかかるべきであるかを選ぶ。
これらの値は、URL文字列を介して新しいページに渡されます。これは、文字列のパラメータと動的ページのコード( '/ your-workout /')に基づいてランダムな投稿を表示することで、ランダムなワークアウト(質問の最後にあるコード)を作成します。
あなたがトレーニングを好きなら、私はあなたが後で再びそれを使用するためにあなたがこのランダムな投稿の配列を保存できるようにして欲しいです。
ステップ2は特に私が行き詰まっているところです。
ランダムな配列のpost IDを保存して、それを使ってこの特定のシーケンスを表示する新しい子ページを作成するにはどうすればいいですか?
ステップ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();?>
私がもっと明確になることができるならば、私に知らせてください。
ありがとうございます。
R :)
私の提案は、トレーニングを特定のユーザーのメタデータ内の新しいエントリとして保存することです。
ワークアウトがエクササイズID 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);
繰り返しますが、これは基本的な考え方です。
おそらくあなたは、保存したワークアウトにアクセスする手段をユーザに与えたり、編集/削除などをしたいと思うかもしれません.