如何从随机开机自检序列中保存数组以备后用?

时间:2013-03-23 作者:rbcpt

我正在Wordpress上构建一个随机训练生成器来帮助我健身,并且一直在保存随机帖子数组以供以后参考。

我会解释的。

发电机应分两个主要阶段工作:

你可以选择锻炼的强度和时间。

这些值通过URL字符串传递到新页面。这将根据字符串中的参数和动态页面上的代码(“/您的训练/”)显示随机帖子,从而创建随机训练(问题底部的代码)

如果您喜欢这项训练,我希望您能够保存此随机帖子数组,以便以后再次使用。

此随机序列中显示的帖子ID将保存到一个数组中

How can I save the post IDs of a random array and use them to create a new child page which displays this specific sequence?

步骤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:)

1 个回复
最合适的回答,由SO网友:tfrommen 整理而成

我的建议是将训练作为新条目存储在特定用户的元数据中。

»保存单个训练

假设训练包含训练ID1, 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);
再一次,这只是基本的想法。

也许你想给用户一些方法来访问保存的训练,或者编辑/删除等。

结束

相关推荐

New loop vs widget

所以,我有一个侧边栏,我将列出所有帖子,我可以使用一个小部件。但是,使用一个新的循环而不是一个小部件或优先选择是否合适?