从前端修改自定义字段

时间:2013-05-07 01:07:49

标签: wordpress metadata backend custom-fields frontend

如果我需要在wordpress下管理自定义字段,而不是管理区域。换句话说,我需要用户从前端修改帖子自定义字段的内容。这样做的方法是什么?

作为实例,请将Stackoverflow.com想象成一个wordpress网站。在此网站下,upvotes / downvotes和accept状态的数量是我的2个帖子自定义字段。如何让前端用户在WP数据库中修改它们的值?

如果你有另一种更好的方法来创建投票系统和接受系统,使用wordpress,将非常感激。但是如果我的方法(使用帖子自定义字段)是okey,请引导我查找来自web或codex的文档以实现我的目标。

感谢您的平常帮助。

1 个答案:

答案 0 :(得分:1)

我建议考虑一些事情:

  1. 每个帖子应显示向上投票和向下投票的总和
  2. 每位用户只能上下投票一次(即一位用户不能再投票一百次)
  3. 您认为您希望为主题创建一个功能,允许用户在登录时更改帖子的元数据。 然而,实际情况并非如此 - 您需要做的是允许用户编辑自己的元数据元素(请参阅add_user_meta),这基本上只是一个哈希。元数据可能类似于array("post-666-vote" => -1, "post-777-vote" => 1),用于发布666后的投票和777后的投票。

    因此,在加载每个帖子时,您的投票标记渲染器看起来像这样:

    vote = get_post_meta($user_id, "post-" . $post_id . "-vote", true);
    if(vote == -1) {
      // Render down-arrow voting
    } elsif(vote == 1) {
      // Render up-arrow voting
    } else { 
      // Render normal arrows
    }
    

    每个箭头可能必须发出AJAX请求才能更新帖子的元数据。这是一个很长的教程(但它不是非常复杂!我保证!)并且大约3/4的方式讨论了如何使用AJAX请求来修改某些用户的元数据。 http://wp.tutsplus.com/tutorials/plugins/a-primer-on-ajax-in-the-wordpress-frontend-actually-doing-it/

    唯一真正的重大变化是WP AJAX请求调用的PHP函数还需要一个回调函数来更新帖子的元数据,并更改帖子本身的投票数。这样,当重新加载页面时,它将显示正确的投票数。