免插件打造wordpress超完美投稿页面


一、新建投稿页面模板
把主题的 page.php 另存为 tougao.php,并且在第一行的

1
2
3
/*
Template Name: tougao
*/

把下面的代码甩进functions.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//投稿
if ( isset( $_POST [ 'tougao_form' ]) && $_POST [ 'tougao_form' ] == 'send' ){
     if ( isset( $_COOKIE [ "tougao" ]) && ( time() - $_COOKIE [ "tougao" ] ) < 120 ){
         wp_die( '您投稿也太勤快了吧,先歇会儿,2分钟后再来投稿吧!' );
     }
     // 表单变量初始化
     $name = trim( $_POST [ 'tougao_authorname' ]);
     $email = trim( $_POST [ 'tougao_authoremail' ]);
     $site = trim( $_POST [ 'tougao_site' ]);
     $title = strip_tags (trim( $_POST [ 'tougao_title' ]));
     $category = isset( $_POST [ 'cat' ] ) ? (int) $_POST [ 'cat' ] : 0;
     $content = $_POST [ 'tougao_content' ];
     $tags = strip_tags (trim( $_POST [ 'tougao_tags' ]));
     if (! empty ( $site )){
         $author = '<a href="' . $site . '" title="' . $name . '" target="_blank" rel="nofollow">' . $name . '</a>' ;
     } else {
         $author = $name ;
     }
     $info = '感谢: ' . $author . ' ' . '投稿' . ' 。' ;
     global $wpdb ;
     $db = "SELECT post_title FROM $wpdb->posts WHERE post_title = '$title' LIMIT 1" ;
     if ( $wpdb ->get_var( $db )){
         wp_die( '发现重复文章.你已经发表过了.或者存在该文章' );
     }
     // 表单项数据验证
     if ( $name == '' ){
         wp_die( '昵称必须填写,且长度不得超过20个字' );
     } elseif (mb_strlen( $name , 'UTF-8' ) > 20 ){
         wp_die( '你的名字怎么这么长啊,起个简单易记的吧,长度不要超过20个字哟!' );
     } elseif ( $title == '' ){
         wp_die( '文章标题必须填写,长度6到50个字之间' );
     } elseif (mb_strlen( $title , 'UTF-8' ) > 50 ){
         wp_die( '文章标题太长了,长度不得超过50个字' );
     } elseif (mb_strlen( $title , 'UTF-8' ) < 6 ){
         wp_die( '文章标题太短了,长度不得少于过6个字' );
     } elseif ( $email == '' || !preg_match( "/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix" , $email )){
         wp_die( 'Email必须填写,必须符合Email格式' );
     } elseif ( $content == '' ){
         wp_die( '内容必须填写,不要太长也不要太短,300到10000个字之间' );
     } elseif (mb_strlen( $content , 'UTF-8' ) >10000){
         wp_die( '你也太能写了吧,写这么多,别人看着也累呀,300到10000个字之间' );
     } elseif (mb_strlen( $content , 'UTF-8' ) < 300){
         wp_die( '太简单了吧,才写这么点,再加点内容吧,300到10000个字之间' );
     } elseif ( $tags == '' ){
         wp_die( '不要这么懒吗,加个标签好人别人搜到你的文章,长度在2到20个字!' );
     } elseif (mb_strlen( $tags , 'UTF-8' ) < 2){
         wp_die( '不要这么懒吗,加个标签好人别人搜到你的文章,长度在2到20个字!' );
     } elseif (mb_strlen( $tags , 'UTF-8' ) > 40){
         wp_die( '标签不用太长,长度在2到40个字就可以了!' );
     } elseif ( $site == '' ){
         wp_die( '请留下贵站名称,要不怎么宣传呀,这点很重要哦!' );
     } elseif ( $site == '' ){
         wp_die( '请填写原文链接,好让其他人浏览你的网站,这是最重要的宣传方式哦!' );
     } else {
         $post_content = $info . '<br />' . $content ;
         $tougao = array (
             'post_title' => $title ,
             'post_content' => $post_content ,
             'tags_input'  => $tags ,
             'post_status' => 'pending' , //publish
             'post_category' => array ( $category )
         );
     // 将文章插入数据库
     $status = wp_insert_post( $tougao );
     if ( $status != 0){
         setcookie( "tougao" , time(), time()+1);
         echo ( '<div style="text-align:center;">' . '<title>' . '你好,刘!' . '</title>' . '</div>' );
         echo ( '<div style="text-align:center;">' . '<meta charset="UTF-8" /><meta http-equiv="refresh" content="5;URL=http://www.hilau.com">' . '</div>' );
         echo ( '<div style="position:relative;font-size:14px;margin-top:100px;text-align:center;">' . '投稿成功,感谢投稿,5秒钟后将返回网站首页!' . '</div>' );
         echo ( '<div style="position:relative;font-size:20px;margin-top:30px;text-align:center;">' . '<a href="/" >' . '立即返回网站首页' . '</a>' . '</div>' );
         wp_mail( array ( 'i@hjyl.org' , $email ), "您的投稿主人已经收到啦!" , $info , array ( 'Content-Type: text/html; charset=UTF-8' ) );
         die ();
     } else {
         wp_die( '投稿失败!' );
     }
     }
}

上面用到了wordpress的自定义域功能(已经注释掉了)如果需要可以自行打开,这样就可以方便设置投稿人昵称和投稿人网址。
二.接着找到tougao.php文件中的the_content();函数,在其后插入下面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
< form method = "post" action = "<?php echo $_SERVER[" REQUEST_URI"]; $ current_user = wp_get_current_user (); ?>" class="row">
< div class = "t1 tt col-sm-4" >
     < span >
         < input class = "form-control" type = "text" size = "40" value="<?php if ( 0 != $current_user->ID ) echo $current_user->user_login; ?>" name="tougao_authorname"; id="tougao_authorname" tabindex="1" />
     </ span >
     < span >
         < label >您的昵称(不超20字)</ label >
     </ span >
</ div >
< div class = "t2 tt col-sm-4" >
     < span >
         < input class = "form-control" type = "text" size = "40" value="<?php if ( 0 != $current_user->ID ) echo $current_user->user_email; ?>" name="tougao_authoremail" id="tougao_authoremail" tabindex="2" />
     </ span >
     < span >
         < label >您的邮箱</ label >
     </ span >
</ div >
< div class = "t3 tt col-sm-4" >
     < span >
         < input class = "form-control" type = "text" size = "40" value="<?php if ( 0 != $current_user->ID ) echo $current_user->user_url; ?>" name="tougao_site" id="tougao_site" tabindex="4" />
     </ span >
     < span >
         < label >贵站网址</ label >
     </ span >
</ div >
< div class = "t4 tt col-sm-4" >
     < span >
         < input class = "form-control" type = "text" size = "40" value = "" name = "tougao_title" id = "tougao_title" tabindex = "3" />
     </ span >
     < span >
         < label >文章标题(6到50字之间)</ label >
     </ span >
</ div >
< div class = "t5 tt col-sm-4" >
     < span >
         < input class = "form-control" type = "text" size = "40" value = "" name = "tougao_tags" id = "tougao_tags" tabindex = "5" />
     </ span >
     < span >
         < label >文章标签(2到20字之间并以英文逗号分开)</ label >
     </ span >
</ div >
< div class = "t6 tt col-sm-4" >
     < span >
         <? php wp_dropdown_categories(' show_count = 0 & hierarchical = 1 & hide_empty = 0 '); ?>
     </ span >
     < span >
         < label >文章分类*(必选)</ label >
     </ span >
</ div >
< div class = "clear" ></ div >
< div id = "postform" >
     < textarea rows = "15" cols = "70"  class = "form-control col-sm-12" id = "tougao_content" name = "tougao_content" tabindex = "6" /></ textarea >
     < p >字数限制:300到10000字之间</ p >
</ div >
< div class = "col-sm-12" id = "submit_post" >
     < input type = "hidden" value = "send" name = "tougao_form" />
     < input class = "btn btn-danger" type = "submit" name = "submit" value = "发表文章" tabindex = "7" />
     < input class = "btn btn-outline-secondary" type = "reset" name = "reset" value = "重填内容" tabindex = "8" />
</ div >
</ form >

如果需要在文本框上加上tinymce编辑器,可以在该文件里加上:

1
2
3
4
5
6
7
8
<script type= "text/javascript" src= "<?php echo home_url(); ?>/wp-includes/js/tinymce/tinymce.min.js" ></script>
<script type= "text/javascript" >
   tinymce.init({
     selector : '#tougao_content' ,
     menubar: false ,
     //toolbar: false,
});
</script>

上面的css样式可以参考这个:小旋风·泛目录站群V5.4/无限制版本

1
2
3
4
5
6
form{ padding : 0 20px ;}
form div.tt{ float : left ; width : 460px ; margin : 10px 0 ;}
form input,.t 6 #cat{ width : 250px ; height : 30px ; padding : 0 10px ;}
#submit_post{ margin : 20px 0 ;}
#submit_post input{ width : 150px ; height : 50px ;}
#postform{ width : 100% ; padding : 0 15px ;}

大功告成!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM