在foreach循环更新元值的Wordpress

时间:2016-02-15 22:08:26

标签: php wordpress loops foreach meta-key

我已经完成了foreach循环以获得自定义帖子类型到前端。我有一个名为'order_staatus'的自定义字段。当我在前端查看我的循环列表时,我想添加一个按钮,将某个帖子'order_staatus'更改为不同的值..我的代码..

public function load_more()
{
    $offset = $this->input->get('offset');
    $limit = $this->input->get('limit');

    $data['res'] = $this->Pesquisas_model->load_more($offset, $limit);
    $data['total'] = $this->Pesquisas_model->count_all();

    if ($data['res']) {
        $data['offset'] = $offset + 2;
        $data['limit'] = $limit;

        echo json_encode($data);
    }
}

1 个答案:

答案 0 :(得分:0)

我认为问题不在于update_post_meta功能。我认为更可能的问题是没有设置$_POST['submit']。提交表单时,不会发送提交按钮的值。 value属性仅用于分配按钮的文本。

我会像这样重写IF代码块:

  if ( isset( $_POST ) )
    {   

      if( ! isset( $_POST['staatus'] ) && ! empty( $_POST['staatus'] ) ){
        echo 'Error';
        die();
      }

      $postid = sanitize_text_field($_POST['post_id']);
      update_post_meta($postid,'order_staatus','1');
  }

请注意,我删除了isset($post)检查,因为您在foreach ( $postslist as $post )内部运行此代码,该代码定义$post,因此它将始终在该循环中设置。

我还添加了函数sanitize_text_field()来清理post_id。这是避免SQL注入的重要安全措施。所有用户输入(包括$ _POST)都可能包含危险数据,需要在使用前进行清理。

希望这有帮助!