[英]wordpress add post validation
这很令人尴尬,但我很惊讶地发现在wordpress中添加新帖子时默认没有验证。 当我没有输入标题甚至内容,只是点击发布时,它说该帖子已发布,当我查看前端时,没有新帖子。
wordpress如何跳过添加帖子的简单验证? Atleast我期望服务器端验证(如果不是客户端)。 不知道为什么跳过验证。 它是wordpress,是否将它们合并到新版本中。
但我想知道如何添加javascript(或jquery)验证以在wordpress中添加帖子。 我知道这一点都不难。 但是对wordpress不熟悉,我想得到一些暗示。
从Firebug,我可以看到表单呈现如下:
<form id="post" method="post" action="post.php" name="post">
...
</form>
我应该在哪里放置我的javascript验证码?
这不是一个bug, WordPress
故意这样做(为了保存修订版AFAIK)。 无论如何,这可能会有效但可能比这更好(粘贴在你的functions.php
文件中)
add_action( 'admin_notices', 'custom_error_notice' );
function custom_error_notice(){
global $current_screen, $post;
if ( $current_screen->parent_base == 'edit' ){
if((!$post->post_name && !$post->post_content) && $_GET['post']) {
wp_redirect(admin_url('post-new.php?empty=1'));
}
if($_GET['empty']) echo '<div class="error"><p>Warning - Please fill up all fields correctly!</p></div>';
}
}
此外,这需要使用wp_redirect
并avoid header already sent error message
,将其粘贴到所有其他代码顶部的functions.php
中
function callback($buffer) {
// You can modify $buffer here, and then return the updated code
return $buffer;
}
function buffer_start() { ob_start("callback"); }
function buffer_end() { ob_end_flush(); }
// Add hooks for output buffering
add_action('init', 'buffer_start');
add_action('wp_footer', 'buffer_end');
嗯,你是对的,WordPress在Post Edit Screen中没有验证,
为什么不尝试Post requires Fields插件,在哪里可以轻松检查要验证的内容,您不需要编写单行代码的javascript或PHP。
这是Backend Management的截图
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.