我已经完成了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);
}
}
答案 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)都可能包含危险数据,需要在使用前进行清理。
希望这有帮助!