搜索
Hi~登录注册
查看: 1218|回复: 0

WordPress中如何添加投稿页面功能 -wordpress教程

[复制链接]

1892

主题

1899

帖子

6406

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6406
发表于 2015-4-20 15:46:24 | 显示全部楼层 |阅读模式

                                <b>[文章目录]</b>
                                <ul id="index-ul">
<li>一:在你的主题的根目录下复制你的page.php这个文件,然后命名为tougao.php文件</li>
<li>二:在toutao.php文件的最上方也就是<?php get_header();?>的上面添加模板文件头部</li>
<li>三:添加表单在你的这个页面中</li>
<li>四:添加表单验证</li>
</ul>
                        </div>
同学们大家好,今天<strong>吾爱互联</strong>将与大家分享如何在wordpress中添加投稿页面的功能添加
我们可以先看看效果图
<img class="aligncenter size-full wp-image-682" src="http://www.wpjiaocheng.com/wp-content/uploads/2014/08/QQ截图20140812105718.png" alt="WordPress中如何添加投稿页面功能 " width="723" height="497" />
具体的解决添加方法如下:
<h2 id="title-0">一:在你的主题的根目录下复制你的page.php这个文件,然后命名为tougao.php文件
<h2 id="title-1">二:在toutao.php文件的最上方也就是<?php get_header();?>的上面添加模板文件头部
代码如
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c" start="1">
<li class="alt"><?php</li>
<li>/**</li>
<li class="alt">* Template Name: tougao</li>
<li>* 作者:huihui</li>
<li class="alt">* 博客:http:<span class="comment">//www.wpjiaocheng.com/</span></li>
<li>?></li>
</ol>
</div>
这是一个比较标准的创建新的模板的样式,为什么要添加这个头部,就是在你所创建的页面时候可以选择这所创建的这个模板,明白
<h2 id="title-2">三:添加表单在你的这个页面中
在你的这个页面中找到<?php the_content(); ?>然后用下面的代码将这个替换即可
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c" start="1">
<li class="alt"><!-- 关于表单样式,请自行调整--></li>
<li><form method=<span class="string">"post"</span> action=<span class="string">"<?php echo $_SERVER["</span>REQUEST_URI<span class="string">"]; ?>"</span>></li>
<li class="alt"><div style=<span class="string">"text-align: left; padding-top: 10px;"</span>></li>
<li><label <span class="keyword">for</span>=<span class="string">"tougao_authorname"</span>>昵称:*</label></li>
<li class="alt"><input type=<span class="string">"text"</span> size=<span class="string">"40"</span> value=<span class="string">""</span> id=<span class="string">"tougao_authorname"</span> name=<span class="string">"tougao_authorname"</span> /></li>
<li></div></li>
<li class="alt"></li>
<li><div style=<span class="string">"text-align: left; padding-top: 10px;"</span>></li>
<li class="alt"><label <span class="keyword">for</span>=<span class="string">"tougao_authoremail"</span>>E-Mail:*</label></li>
<li><input type=<span class="string">"text"</span> size=<span class="string">"40"</span> value=<span class="string">""</span> id=<span class="string">"tougao_authoremail"</span> name=<span class="string">"tougao_authoremail"</span> /></li>
<li class="alt"></div></li>
<li></li>
<li class="alt"><div style=<span class="string">"text-align: left; padding-top: 10px;"</span>></li>
<li><label <span class="keyword">for</span>=<span class="string">"tougao_authorblog"</span>>您的博客:</label></li>
<li class="alt"><input type=<span class="string">"text"</span> size=<span class="string">"40"</span> value=<span class="string">""</span> id=<span class="string">"tougao_authorblog"</span> name=<span class="string">"tougao_authorblog"</span> /></li>
<li></div></li>
<li class="alt"></li>
<li><div style=<span class="string">"text-align: left; padding-top: 10px;"</span>></li>
<li class="alt"><label <span class="keyword">for</span>=<span class="string">"tougao_title"</span>>文章标题:*</label></li>
<li><input type=<span class="string">"text"</span> size=<span class="string">"40"</span> value=<span class="string">""</span> id=<span class="string">"tougao_title"</span> name=<span class="string">"tougao_title"</span> /></li>
<li class="alt"></div></li>
<li></li>
<li class="alt"><div style=<span class="string">"text-align: left; padding-top: 10px;"</span>></li>
<li><label <span class="keyword">for</span>=<span class="string">"tougaocategorg"</span>>分类:*</label></li>
<li class="alt"><?php wp_dropdown_categories('id=tougaocategorg&amp;show_count=1&amp;hierarchical=1'); ?></li>
<li></div></li>
<li class="alt"></li>
<li><div style=<span class="string">"text-align: left; padding-top: 10px;"</span>></li>
<li class="alt"><label style=<span class="string">"vertical-align:top"</span> <span class="keyword">for</span>=<span class="string">"tougao_content"</span>>文章内容:*</label></li>
<li><textarea rows=<span class="string">"15"</span> cols=<span class="string">"55"</span> id=<span class="string">"tougao_content"</span> name=<span class="string">"tougao_content"</span>></textarea></li>
<li class="alt"></div></li>
<li></li>
<li class="alt"><br clear=<span class="string">"all"</span>></li>
<li><div style=<span class="string">"text-align: center; padding-top: 10px;"</span>></li>
<li class="alt"><input type=<span class="string">"hidden"</span> value=<span class="string">"send"</span> name=<span class="string">"tougao_form"</span> /></li>
<li><input type=<span class="string">"submit"</span> value=<span class="string">"提交"</span> /></li>
<li class="alt"><input type=<span class="string">"reset"</span> value=<span class="string">"重填"</span> /></li>
<li></div></li>
<li class="alt"></form></li>
</ol>
</div>
这时候你就会发现你tougao.php这个页面中出现了表单效果
<h2 id="title-3">四:添加表单验证
为了安全要添加表单的验证功能,添加的方法就是在你的模板的头部文件和<?php get_header();?>的中间添加如下代码
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-c" start="1">
<li class="alt"><?php</li>
<li><span class="keyword">if</span>( isset(<span class="vars">$_POST</span>['tougao_form']) &amp;&amp; <span class="vars">$_POST</span>['tougao_form'] == 'send')</li>
<li class="alt">{</li>
<li><span class="keyword">global</span> <span class="vars">$wpdb</span>;</li>
<li class="alt"><span class="vars">$last_post</span> = <span class="vars">$wpdb</span>->get_var(<span class="string">"SELECT post_date FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC LIMIT 1"</span>);</li>
<li></li>
<li class="alt"><span class="comment">// 博客当前最新文章发布时间与要投稿的文章至少间隔120秒。</span></li>
<li><span class="comment">// 可自行修改时间间隔,修改下面代码中的120即可</span></li>
<li class="alt"><span class="comment">// 相比Cookie来验证两次投稿的时间差,读数据库的方式更加安全</span></li>
<li><span class="keyword">if</span> ( current_time('timestamp') - <span class="func">strtotime</span>(<span class="vars">$last_post</span>) < 120 )</li>
<li class="alt">{</li>
<li>wp_die('您投稿也太勤快了吧,先歇会儿!');</li>
<li class="alt">}</li>
<li></li>
<li class="alt"><span class="comment">// 表单变量初始化</span></li>
<li><span class="vars">$name</span> = isset( <span class="vars">$_POST</span>['tougao_authorname'] ) ? trim(htmlspecialchars(<span class="vars">$_POST</span>['tougao_authorname'], ENT_QUOTES)) : <span class="string">''</span>;</li>
<li class="alt"><span class="vars">$email</span> = isset( <span class="vars">$_POST</span>['tougao_authoremail'] ) ? trim(htmlspecialchars(<span class="vars">$_POST</span>['tougao_authoremail'], ENT_QUOTES)) : <span class="string">''</span>;</li>
<li><span class="vars">$blog</span> = isset( <span class="vars">$_POST</span>['tougao_authorblog'] ) ? trim(htmlspecialchars(<span class="vars">$_POST</span>['tougao_authorblog'], ENT_QUOTES)) : <span class="string">''</span>;</li>
<li class="alt"><span class="vars">$title</span> = isset( <span class="vars">$_POST</span>['tougao_title'] ) ? trim(htmlspecialchars(<span class="vars">$_POST</span>['tougao_title'], ENT_QUOTES)) : <span class="string">''</span>;</li>
<li><span class="vars">$category</span> = isset( <span class="vars">$_POST</span>['cat'] ) ? (int)<span class="vars">$_POST</span>['cat'] : 0;</li>
<li class="alt"><span class="vars">$content</span> = isset( <span class="vars">$_POST</span>['tougao_content'] ) ? trim(htmlspecialchars(<span class="vars">$_POST</span>['tougao_content'], ENT_QUOTES)) : <span class="string">''</span>;</li>
<li></li>
<li class="alt"><span class="comment">// 表单项数据验证</span></li>
<li><span class="keyword">if</span> ( <span class="func">empty</span><span class="keyword">empty</span>(<span class="vars">$name</span>) || mb_strlen(<span class="vars">$name</span>) > 20 )</li>
<li class="alt">{</li>
<li>wp_die('昵称必须填写,且长度不得超过20字');</li>
<li class="alt">}</li>
<li></li>
<li class="alt"><span class="keyword">if</span> ( <span class="func">empty</span><span class="keyword">empty</span>(<span class="vars">$email</span>) || <span class="func">strlen</span>(<span class="vars">$email</span>) > 60 || !preg_match(<span class="string">"/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"</span>, <span class="vars">$email</span>))</li>
<li>{</li>
<li class="alt">wp_die('Email必须填写,且长度不得超过60字,必须符合Email格式');</li>
<li>}</li>
<li class="alt"></li>
<li><span class="keyword">if</span> ( <span class="func">empty</span><span class="keyword">empty</span>(<span class="vars">$title</span>) || mb_strlen(<span class="vars">$title</span>) > 100 )</li>
<li class="alt">{</li>
<li>wp_die('标题必须填写,且长度不得超过100字');</li>
<li class="alt">}</li>
<li></li>
<li class="alt"><span class="keyword">if</span> ( <span class="func">empty</span><span class="keyword">empty</span>(<span class="vars">$content</span>) || mb_strlen(<span class="vars">$content</span>) > 3000 || mb_strlen(<span class="vars">$content</span>) < 100)</li>
<li>{</li>
<li class="alt">wp_die('内容必须填写,且长度不得超过3000字,不得少于100字');</li>
<li>}</li>
<li class="alt"></li>
<li><span class="vars">$post_content</span> = '昵称: '.<span class="vars">$name</span>.'<br />Email: '.<span class="vars">$email</span>.'<br />blog: '.<span class="vars">$blog</span>.'<br />内容:<br />'.<span class="vars">$content</span>;</li>
<li class="alt"></li>
<li><span class="vars">$tougao</span> = <span class="keyword">array</span>(</li>
<li class="alt">'post_title' => <span class="vars">$title</span>,</li>
<li>'post_content' => <span class="vars">$post_content</span>,</li>
<li class="alt">'post_category' => <span class="keyword">array</span>(<span class="vars">$category</span>)</li>
<li>);</li>
<li class="alt"></li>
<li><span class="comment">// 将文章插入数据库</span></li>
<li class="alt"><span class="vars">$status</span> = wp_insert_post( <span class="vars">$tougao</span> );</li>
<li></li>
<li class="alt"><span class="keyword">if</span> (<span class="vars">$status</span> != 0)</li>
<li>{</li>
<li class="alt"><span class="comment">// 投稿成功给博主发送邮件</span></li>
<li><span class="comment">// somebody#example.com替换博主邮箱</span></li>
<li class="alt"><span class="comment">// My subject替换为邮件标题,content替换为邮件内容</span></li>
<li>wp_mail(<span class="string">"somebody#example.com"</span>,<span class="string">"My subject"</span>,<span class="string">"content"</span>);</li>
<li class="alt"></li>
<li>wp_die('投稿成功!感谢投稿!', '投稿成功');</li>
<li class="alt">}</li>
<li><span class="keyword">else</span></li>
<li class="alt">{</li>
<li>wp_die('投稿失败!');</li>
<li class="alt">}</li>
<li>}</li>
<li class="alt">?></li>
</ol>
</div>
到这里我们就把这个投稿的问题给解决了,有些同学会发现这个投稿的布局样式不是很好看,对于这个问题自己可以去修改样式添加你所喜欢的就可以
了,到这里这个问题就基本上结束了,同学们可以自己尝试下
公众微信:idc5ahl
公众QQ:吾爱互联
关注公众微信,公众QQ每天领现金卡密
卡密介绍(http://www.5ahl.com/thread-2182-1-1.html
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 点我注册

快速回复 返回顶部 返回列表