Loading
0

wordpress 实现前端投稿页面

很多用户都希望在自己的wordpress网站前台增加投稿功能,虽然有很多插件可以实现此功能,但是能不用插件尽量不用插件,那么我们可以新建一个页面模板来实现投稿功能。

form表单的html代码我就不写了,这里主要写后台处理逻辑,代码如下:

$last_post = $wpdb->get_var("SELECT post_date FROM $wpdb->posts WHERE post_author='{$uid}' AND post_type = 'post' ORDER BY post_date DESC LIMIT 1");
if ( time() - strtotime($last_post) < 120 ){
 print_r(json_encode(array('error'=>1, 'msg'=>'两次提交文章时间间隔太短,请稍候再来'))); 
 exit();
 }
 $title = $wpdb->escape($_POST['post_title']);
 $cat = $wpdb->escape($_POST['post_cat']);
 $excerpt = $wpdb->escape($_POST['post_excerpt']);
 $tag = $wpdb->escape($_POST['post_tag']);
 $content = $wpdb->escape($_POST['post_content']);
if ( empty($title) || mb_strlen($title) > 50 ) {
 print_r(json_encode(array('error'=>1, 'msg'=>'标题不能为空,且小于50个字符'))); 
 exit();
 }
if ( empty($content) || mb_strlen($content) > 10000 || mb_strlen($content) < 10 ) {
 print_r(json_encode(array('error'=>1, 'msg'=>'文章内容不能为空,且介于10-10000字之间'))); 
 exit();
 }
$posttitle = $wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE post_author='{$uid}' AND post_title = '{$title}' LIMIT 1");
 if( !empty($posttitle) ){
 print_r(json_encode(array('error'=>1, 'msg'=>'标题 '. $posttitle .' 已存在'))); 
 exit();
 }
 $in_data = array(
 'post_title' => $title,
 'post_author' => $uid,
 'post_excerpt' => $excerpt,
 'post_content' => $content,
 'tags_input' => array($tag),  //格式如:array("mobantu,mbt")
 'post_status' => 'pending',
 'post_category' => array($cat)
 );
 $in_id = wp_insert_post( $in_data );
 if (!$in_id) { 
 print_r(json_encode(array('error'=>1, 'msg'=>'投稿失败,请稍后再试'))); 
 exit();
 }
 
 wp_mail(get_bloginfo('admin_email'), '站长,有新投稿:'.$title, $content);
 print_r(json_encode(array('error'=>0, 'msg'=>'投稿成功,我们将尽快审核')));

 

以上代码是模板兔给客户增加的投稿代码,需要用到的同学可参考下。

 

特别声明:1、本站仅提供源码学习下载,使用者需具备一定的技术基础,源码费用仅为站长辛苦整理费,不代表源码自身价值也不包含任何服务,如需完美运营请到官方购买。如需搭建、二开、bug修复等服务需额外收费,如果源码侵犯了您的利益请联系客服处理! 2、用户必须遵守《计算机软件保护条例(2013修订)》第十七条:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。鉴于此条例,用户从本平台下载的全部源码(软件)仅限学习研究,未经版权归属者授权不得商用,若因商用引起的版权纠纷,一切责任均由使用者自行承担,本平台所属公司及其雇员不承担任何法律责任。本站邮箱:weituiw@qq.com