update post meta front end

时间:2014-08-01 作者:user2062819

你为什么要发这篇文章?!我想从前端更新我的Posteta“doors”

<?php
if ( isset( $_POST[\'submit\'] ) )
    { //if nonce check succeeds.
        global $post;
        $postid = $post->ID;
        $data = $_POST[\'doors\'];
        update_post_meta($postid, \'doors\', \'2\' );
        echo self::$auto_id. \'doors\'.\'2\';
        echo $postid;

}


$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\' />
</form>
此代码在我的输入中显示门值,但如果我在那里写入其他内容,请单击“保存未发生任何事情…”。。。它确实保存了我的新值。

为什么?:(

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

让我们开始调试这个问题。首先,我们要确保IF 当窗体$_POSTs、 如果您用此代码替换代码,然后提交表单,您应该会看到消息“我们已进入$\\u POST条件!”!“”

<?php
if ( isset( $_POST[\'submit\'] ) )
{
    echo "We\'ve gotten into the $_POST conditional!"
    exit;
}
?>

<form method="post" action="">
   <input type=\'text\' name=\'doors\' value=\'<?php echo $doors ?>\' />
   <input type=\'submit\' value=\'save\' />
</form>
根据您的评论,您确实进入了$\\u POST条件。所以我们可以更新post-meta。

<?php
    global $post;

    if ( isset( $_POST[\'submit\'] ) )
    {   
        if( ! isset( $post ) ) {
            echo \'Error: Post Object Not Set\';
            die();
        }
        else if( ! isset( $_POST[\'doors\'] ) && ! empty( $_POST[\'doors\'] ) ){
            echo \'Error: Doors Not Set\';
            die();
        }

        update_post_meta( $post->ID, \'doors\', sanitize_text_field( $_POST[\'doors\'] ) );
    }

    $doors = get_post_meta($post->ID, \'doors\', true);

    echo print_r($doors);
?>

    <form method="post" action="">
       <input type=\'text\' name=\'doors\' value=\'<?php echo isset($doors) ? $doors : \'\'; ?>\' />
       <input type=\'submit\' value=\'save\' />
    </form>
如果您没有收到任何错误,这意味着$post 在范围和设置中doors 也已设置且不为空。这意味着它一定要更新post-meta。如果这不起作用,可能会出现给定代码之外的问题。

SO网友:Chinmoy Kumar Paul

您正在$数据变量中保存门值。但在update\\u post\\u元函数中没有使用此变量。

保存静态值2的所有时间。您将更新此行

update_post_meta($postid, \'doors\', \'2\' );
使用

update_post_meta($postid, \'doors\', $data );
您还编写了以下代码$doors=get\\u post\\u meta($auto->ID,“doors”,true);但如何获得$自动对象。我想你的语法是

$doors = get_post_meta($post->ID, \'doors\', true);

结束

相关推荐

Updates for a private plugin?

如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点