php - 验证 wordpress 帖子中的自定义字段

标签 php wordpress wordpress-theming

我有一个自定义帖子类型 speaker,在 speaker 中我有一个自定义字段 speaker_organization。我如何验证这一点并在 admin notice 中显示错误。

add_action( 'add_meta_boxes', 'speaker_organization_box' );
function speaker_organization_box() {
    add_meta_box( 
        'speaker_organization',
        __( 'Organization', 'dbem' ),
        'speaker_organization_box_content',
        'speaker',
        'side',
        'high'
    );
}

function speaker_organization_box_content( $post ) {
    // generate a nonce field
    wp_nonce_field( basename( __FILE__ ), 'dbem-speaker-organization-nonce' );

    // get previously saved meta values (if any)
    $speaker_organization = get_post_meta( $post->ID, 'speaker_organization', true );

    echo '<label for="speaker_organization"></label>';
    echo '<input type="text" id="speaker_organization" name="speaker_organization" placeholder="Organization Name" value="'.$speaker_organization.'" />';
}

function speaker_organization_box_save( $post_id ) {
  $speaker_organization = $_POST['speaker_organization'];
  update_post_meta( $post_id, 'speaker_organization', $speaker_organization ); 
}
add_action( 'save_post', 'speaker_organization_box_save' );

最佳答案

使用

add_action( 'admin_notices', 'my_admin_notice' );

或者使用验证js

add_action('admin_enqueue_scripts', 'add_my_js');   
function add_my_js(){    
  wp_enqueue_script('my_validate', 'path/to/jquery.validate.min.js', array('jquery'));
  wp_enqueue_script('my_script_js', 'path/to/my_script.js');
}

jQuery().ready(function() {
    jQuery("#post").validate();
});

<input type="text" name="my_custom_text_field" class="required"/>

function wpse_update_post_custom_values($post_id, $post) {
    // Do some checking...
    if($_POST['subhead'] != 'value i expect') {
        // Add an error here
        $errors->add('oops', 'There was an error.');
    }
    return $errors;
} 
add_action('save_post','wpse_update_post_custom_values',1,2);

validate js code

using condition + admin notice

关于php - 验证 wordpress 帖子中的自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23896158/

相关文章:

css - 在 Wordpress 中使用随主题下载的自定义 rtl.css 样式

Wordpress WP_Query 仅搜索标题

Php If语句取其他大于0的最小数

php - 虚拟服务器上小型 Drupal 7 站点的最佳 php.ini 和 my.cnf 设置

wordpress - 如何将我的整个 WordPress 安装置于 git 控制之下?

wordpress - 以编程方式将标签添加到 WordPress 帖子而不覆盖预先存在的标签

css - 无法在 Chrome 开发者工具中保存 style.css

javascript - 使用 JavaScript 向 SMS 网关提交 mysql 查询 + http 请求

php - 如何将查询构建器与 sum() 列和 groupBy 一起使用

php - 根据选择的运输有条件地隐藏 WooCommerce 中的“结账”字段