Php 更新后元wordpress
!!问题解决了,新问题Php 更新后元wordpress,php,wordpress,post,meta,Php,Wordpress,Post,Meta,!!问题解决了,新问题 <?php if ( isset( $_POST['submit'] ) ) { //if nonce check succeeds. global $post; $postid = $auto->ID; $data = $_POST['doors']; update_post_meta($postid, 'doors', $data ); }
<?php
if ( isset( $_POST['submit'] ) )
{ //if nonce check succeeds.
global $post;
$postid = $auto->ID;
$data = $_POST['doors'];
update_post_meta($postid, 'doors', $data );
}
$doors = get_post_meta($auto->ID, 'doors', true);
?>
<form method="post" action="">
<input type='text' name='doors' value='<?php echo $doors ?>' />
<input type='submit' value='save' name="submit"/>
</form>
好的,您的问题是每个循环都在更新每个项目。这是因为您正在测试$u POST是否有值,请更新它。您需要设置一个标识符,以便它知道要更新哪个帖子
例如,但输入字段中的post id
<input type='text' name='doors[<?php echo $auto->ID; ?>]' value='<?php echo isset($doors) ? $doors : ''; ?>' />
注意,此$\u POST代码出现在循环中(在foreach语句和endforeach之间)。将其移动到页面顶部的循环外部,保存每次运行的循环。现在,您还可以在每次提交时更新多个值。您还需要以某种方式检查这些值,以防止有人更改他们喜欢的任何帖子上的postmeta(他们只需执行post[doors][posted]即可更改任何doors值) global只在函数中使用(或者您的文件可能包含在函数中?)?您从未传入$data
,因此您提交的任何内容都将丢失。@MarcB ahhhh真的!你知道如何更改它吗?:)这是链接到一个帖子视图还是仅仅一个页面本身?嘿,这是一个页面本身@davidi如果你在pastebin上更新你的文件,我会看一看。你能给它做一个重置按钮吗?好的,你需要在你的输入$doors=get_post_meta($auto->ID,'doors',true)上方添加这一行;你说的重置按钮是什么意思?那没用?我的输入将被隐藏,如何获得清除按钮以清除值?:)
if ( isset( $_POST['doors'] ) ){
// verify nounce prob a good idea
foreach($_POST['doors'] as $item=>$key) {
$id= sanitize_text_field($item);
update_post_meta( $id, 'doors', sanitize_text_field( $key ) );
}
}