在POST保存前验证自定义字段

时间:2013-10-12 作者:Eckstein

在多次搜索失败后,我希望这里的人能帮助我。我正在使用高级自定义字段(我假设大多数人都很熟悉)从前端创建帖子。我想验证一个字段,并确保在将任何内容保存到数据库之前有一个值。

我有这个函数,但我检查的两个元数据总是返回false(可能是因为元数据还没有保存?)在保存帖子之前,我不知道如何检查它们。感谢您的任何提示。谢谢

//Create new Custom Design post from frontend
function my_pre_save_post( $post_id )
{
// check if this is to be a new post
if( $post_id != \'new\' )
{
    return $post_id;
}
if (get_post_meta($post_id, \'upload_image\', true) || get_post_meta($post_id, \'submit_link\', true)) {

    // Create a new post
    global $current_user;
      get_currentuserinfo();

      $title = $current_user->user_email.\'-\'.get_date();

    $post = array(
        \'post_status\'  => \'publish\' ,
        \'post_title\'  => $title,
        \'post_type\'  => \'custom-designs\' ,
    );  

    // insert the post
    $post_id = wp_insert_post( $post ); 

    // update $_POST[\'return\']
    $_POST[\'return\'] = add_query_arg( array(\'post_id\' => $post_id, \'submitted\' => \'true\', \'custom-error\' => false), $_POST[\'return\'] );    

    // return the new ID
    return $post_id;
} else {
    wp_redirect(add_query_arg(array(\'custom-error\' => \'true\'), $_POST[\'return\'])); 
    exit;
}
} 
add_filter(\'acf/pre_save_post\' , \'my_pre_save_post\' );

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

几年后,ACF将此功能集成到插件本身中,因此首先不需要此自定义代码。:)

SO网友:Milo

根据我的经验,检查字段值的唯一方法是直接访问$_POST 变量:

if( ( isset( $_POST[\'upload_image\'] ) && !empty( $_POST[\'upload_image\'] ) )

SO网友:doublesharp

我编写了一个插件来验证高级自定义字段。它允许您使用PHP代码或regex、jQuery屏蔽输入以及唯一值设置进行服务器端验证。检查支持页面中的beta version 支持ACF5。

http://wordpress.org/extend/plugins/validated-field-for-acf/

结束

相关推荐

Hide gravity forms

我在我的网站上设置了重力表单,我想根据用户是否已在表单/数据库中发布条目来隐藏/显示表单。如果他们做了一个条目,那么我想隐藏它并显示一些简单的文本。我知道重力形式允许你限制参赛人数,但这并不是我想要的。我猜我必须查询数据库,但我不确定最好的编写方法。我是否需要使用诸如get\\u posts之类的工具来检查作者是否有条目?这是最好的方式吗?

在POST保存前验证自定义字段 - 小码农CODE - 行之有效找到问题解决它

在POST保存前验证自定义字段

时间:2013-10-12 作者:Eckstein

在多次搜索失败后,我希望这里的人能帮助我。我正在使用高级自定义字段(我假设大多数人都很熟悉)从前端创建帖子。我想验证一个字段,并确保在将任何内容保存到数据库之前有一个值。

我有这个函数,但我检查的两个元数据总是返回false(可能是因为元数据还没有保存?)在保存帖子之前,我不知道如何检查它们。感谢您的任何提示。谢谢

//Create new Custom Design post from frontend
function my_pre_save_post( $post_id )
{
// check if this is to be a new post
if( $post_id != \'new\' )
{
    return $post_id;
}
if (get_post_meta($post_id, \'upload_image\', true) || get_post_meta($post_id, \'submit_link\', true)) {

    // Create a new post
    global $current_user;
      get_currentuserinfo();

      $title = $current_user->user_email.\'-\'.get_date();

    $post = array(
        \'post_status\'  => \'publish\' ,
        \'post_title\'  => $title,
        \'post_type\'  => \'custom-designs\' ,
    );  

    // insert the post
    $post_id = wp_insert_post( $post ); 

    // update $_POST[\'return\']
    $_POST[\'return\'] = add_query_arg( array(\'post_id\' => $post_id, \'submitted\' => \'true\', \'custom-error\' => false), $_POST[\'return\'] );    

    // return the new ID
    return $post_id;
} else {
    wp_redirect(add_query_arg(array(\'custom-error\' => \'true\'), $_POST[\'return\'])); 
    exit;
}
} 
add_filter(\'acf/pre_save_post\' , \'my_pre_save_post\' );

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

几年后,ACF将此功能集成到插件本身中,因此首先不需要此自定义代码。:)

SO网友:Milo

根据我的经验,检查字段值的唯一方法是直接访问$_POST 变量:

if( ( isset( $_POST[\'upload_image\'] ) && !empty( $_POST[\'upload_image\'] ) )

SO网友:doublesharp

我编写了一个插件来验证高级自定义字段。它允许您使用PHP代码或regex、jQuery屏蔽输入以及唯一值设置进行服务器端验证。检查支持页面中的beta version 支持ACF5。

http://wordpress.org/extend/plugins/validated-field-for-acf/

相关推荐

如何在WooCommerce_Add_to_Cart_Validation挂钩下检索post_id?

我试图在custom\\u fields\\u validation()函数下检索帖子id,但收到以下消息错误:尝试在第116行获取非对象的属性add_action(\'woocommerce_add_to_cart_validation\',\'custom_fields_validation\'), 10, 3 ); public static function custom_fields_validation() {