使POST_CONTENT和其他自定义域成为必填项

时间:2017-04-21 作者:TorryVic

设置required 例如,我希望需要在wordpress中发布html表单,因此需要更改此代码:

<textarea class="wp-editor-area" style="height: 300px; margin-top: 37px;" autocomplete="off" cols="40" name="content" id="content"></textarea>
如下所示:

<textarea required class="wp-editor-area" style="height: 300px; margin-top: 37px;" autocomplete="off" cols="40" name="content" id="content"></textarea>
如何通过过滤器或动作挂钩实现?同样的解决方案,我也将其用于发布帖子表单中的其他字段。

我想要的是添加HTML5required 属性,一旦页面呈现完毕。

https://www.w3schools.com/tags/att_input_required.asphttps://www.w3schools.com/tags/att_textarea_required.asp

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

最后,我将其解决如下:

add_action( \'admin_enqueue_scripts\', array($this, \'my_admin_scripts\') );

function my_admin_scripts($page) {
    global $post;

    if ($page == "post-new.php" OR $page == "post.php") {
        wp_register_script( \'my-custom-admin-scripts\', plugins_url(\'/js/my-admin-post.js\',dirname(__FILE__)), array(\'jquery\', \'jquery-ui-sortable\' ) , null, true );
        wp_enqueue_script( \'my-custom-admin-scripts\' );             
    }           
}
并将JQuery所需的atribute放入下一个js代码(/js/my admin post.js):

// JavaScript Document
jQuery(document).ready(function($) {
    $(\'#title\').attr(\'required\', true);
    $(\'#content\').attr(\'required\', true);
    $(\'#_my_custom_field\').attr(\'required\', true); 
});

SO网友:JItendra Rana

不要完全依赖JavaScript验证。使用下钩子进行服务器端验证。

function check_if_post_content_set( $maybe_empty, $postarr ) {
// Check if post is already created. IMPORTANT
if($postarr[\'ID\'] && (int)$postarr[\'ID\'] > 0){
    if( !$postarr[\'post_content\'] OR $postarr[\'post_content\'] == \'\' OR $postarr[\'post_content\'] == NULL ){
        $maybe_empty = true;
    }
}
return $maybe_empty;
}
add_filter( \'wp_insert_post_empty_content\', \'check_if_post_content_set\', 999999, 2 );