执行保存帖子的函数时出现问题

时间:2013-04-02 作者:Jithesh Kt

这是我的基本插件代码。我只是从零开始。我将解释功能。这很简单,当我的插件处于活动状态时,它会在标签框下方的添加新帖子页面中添加一个新的元框。用户可以向我的文本框中添加值(&a);我将使用post ID将该值保存到我的表中。在阅读我的代码后,您可以理解发生了什么。

<?php
/*
Plugin Name: Post Extender
Author: Jithesh Kt
Version: 1.0
*/

add_action( \'admin_menu\', \'extra_meta_form\' );
add_action( \'save_post\', \'save_extra_meta\' );
function extra_meta_form() {
    //global $theme_name;
    add_meta_box( \'post-meta-boxes\', __(\'Extra Fileds\'), \'extra_meta_form_view\', \'post\', \'side\', \'default\' );
}

function extra_meta_form_view()
{ ?>
<table class="form-table">
<p>Extra Meta filed :  <input type="text" id="custom_input" name="custom_input"/></p>
</table>
<?php }

function save_extra_meta($post_id)
{
    global $wpdb;
    $tablename = $wpdb->prefix."extra_post_meta";
    $query_result = $wpdb->insert($tablename, array(\'post_id\'=>$post_id,
    \'filed_name\'=>"My Text",
    \'value\'=>$_POST[\'custom_input\']
    ));

}
?>
现在,在激活我的插件后,我单击Add New添加了一个帖子标题、内容和;我的a值位于新添加的文本框中。

我在表格中预期的结果是:

Expected

但实际上,我在新桌子上看到的是:(

Result

数据是如何复制的?其他数据来自哪里?

这快把我逼疯了。从最近两天开始就在这只兔子后面跑。我尝试了很多方法。相同的结果。数据总是重复(&P);数据插入也未知。

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

行动save_post 在AJAX自动保存请求期间也调用。但是您的值不会被发送,所以您会为未设置的内容保存一个空值。

使用以下命令启动保存功能:

if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
    return;
查看更多检查的基本示例herehere.

SO网友:Akanksha Sharma

当您重新加载管理页面时,wordpress会通过AJAX触发“save\\u post”操作,并将元盒值发送为空。生成空白字段。您可以通过以下方式保留字段值

    add_action(\'save_post\', \'custom_function\');

    function custom_function($postid) {
        if ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE ) {
            return $postid;
        }
        // Your functionality
    }

结束

相关推荐

plugins_url vs plugin_dir_url

我看到WordPress插件在为一些文件夹创建常量时使用plugins\\u url或plugin\\u dir\\u url。一个比另一个好吗?示例:define( \'MEMBERS_URI\', trailingslashit( plugin_dir_url( __FILE__ ) ) ); define( \'WPACCESS_INC\', plugins_url( \'inc\', __FILE__ ) , true );