这篇文章主要讲解了“WordPress中如何添加投稿功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WordPress中如何添加投稿功能”吧!
一、添加投稿表单
1、首先在当前主题的目录下新建一个php文件,命名为tougao-page.php,然后将page.php中的所有代码复制到tougao-page.php中;
2、删除tougao-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容;
3、搜索:the_content,可以查找到类似代码<?php the_content(); ?>,将其替换成代码一
如果你在tougao-page.php中找不到
the_content,那么你可以查找:
get_template_part,可找到类似代码:<?php get_template_part( 'content', 'page' ); ?>,将content-page.php中的所有代码替换这部分代码即可。再用下面的代码替换<?php the_content(); ?>
代码一:
<?php the_content(); ?> <!-- 关于表单样式,请自行调整--> <form class="ludou-tougao" method="post" action="<?php echo $_SERVER["REQUEST_URI"]; $current_user = wp_get_current_user(); ?>"> <div style="text-align: left; padding-top: 10px;"> <label for="tougao_authorname">昵称:*</label> <input type="text" size="40" value="<?php if ( 0 != $current_user->ID ) echo $current_user->user_login; ?>" id="tougao_authorname" name="tougao_authorname" /> </div> <div style="text-align: left; padding-top: 10px;"> <label for="tougao_authoremail">E-Mail:*</label> <input type="text" size="40" value="<?php if ( 0 != $current_user->ID ) echo $current_user->user_email; ?>" id="tougao_authoremail" name="tougao_authoremail" /> </div> <div style="text-align: left; padding-top: 10px;"> <label for="tougao_authorblog">您的博客:</label> <input type="text" size="40" value="<?php if ( 0 != $current_user->ID ) echo $current_user->user_url; ?>" id="tougao_authorblog" name="tougao_authorblog" /> </div> <div style="text-align: left; padding-top: 10px;"> <label for="tougao_title">文章标题:*</label> <input type="text" size="40" value="" id="tougao_title" name="tougao_title" /> </div> <div style="text-align: left; padding-top: 10px;"> <label for="tougaocategorg">分类:*</label> <?php wp_dropdown_categories('hide_empty=0&id=tougaocategorg&show_count=1&hierarchical=1'); ?> </div> <div style="text-align: left; padding-top: 10px;"> <label style="vertical-align:top" for="tougao_content">文章内容:*</label> <textarea rows="15" cols="55" id="tougao_content" name="tougao_content"></textarea> </div> <br clear="all"> <div style="text-align: center; padding-top: 10px;"> <input type="hidden" value="send" name="tougao_form" /> <input type="submit" value="提交" /> <input type="reset" value="重填" /> </div> </form>
二、添加表单处理代码
在tougao-page.php开头处中,将第一个 <?php 改成代码二:
<?php /** * Template Name: tougao * 作者:露兜 * 博客:https://www.ludou.org/ * * 更新记录 * 2010年09月09日 : * 首个版本发布 * * 2011年03月17日 : * 修正时间戳函数,使用wp函数current_time('timestamp')替代time() * * 2011年04月12日 : * 修改了wp_die函数调用,使用合适的页面title * * 2013年01月30日 : * 错误提示,增加点此返回链接 * * 2013年07月24日 : * 去除了post type的限制;已登录用户投稿不用填写昵称、email和博客地址 * * 2015年03月08日 : * 使用date_i18n('U')代替current_time('timestamp') */ if( isset($_POST['tougao_form']) && $_POST['tougao_form'] == 'send') { global $wpdb; $current_url = 'http://你的投稿页面地址'; // 注意修改此处的链接地址 $last_post = $wpdb->get_var("SELECT `post_date` FROM `$wpdb->posts` ORDER BY `post_date` DESC LIMIT 1"); // 博客当前最新文章发布时间与要投稿的文章至少间隔120秒。 // 可自行修改时间间隔,修改下面代码中的120即可 // 相比Cookie来验证两次投稿的时间差,读数据库的方式更加安全 if ( (date_i18n('U') - strtotime($last_post)) < 120 ) { wp_die('您投稿也太勤快了吧,先歇会儿!<a href="https://www.maopiaopiao.com">
最后以UTF-8编码保存tougao-page.php,否则中文可能会乱码。然后进入WordPress管理后台 – 页面 – 创建页面,标题为投稿(可以自己起名),内容填上投稿说明等,右侧可以选择模板,选择 tougao 即可。此页面即前台注册页面,将该页面的链接放到网站任何位置,供用户点击注册即可。
好了,基本的投稿功能已经添加完毕,至于表单样式不好看,表单缺少你想要的项目等问题,你就自己添加css、表单项吧。最后,也欢迎给本站投稿哦,当然本站的投稿方式是开放后台的注册功能,不是以上的表单形式。
代码补充说明
1、如果你想让投稿的文章立即发布,而不需要审核再编辑,那么请将以上代码中的:
'post_content' => $post_content,
改成:
'post_content' => $post_content,'post_status' => 'publish',
2、如果你想给投稿页面增加验证码功能,可以 点此下载 验证码文件,解压后将captcha目录放到当前主题目录下,然后在代码一中,将35行的:
<br clear="all">
改成:
<div style="text-align: left; padding-top: 10px;">
<label for="CAPTCHA">验证码:
<input id="CAPTCHA" style="width:110px;*float:left;" class="input" type="text" tabindex="24" size="10" value="" name="captcha_code" /> 看不清?<a href="https://www.maopiaopiao.com"> </label>
</div>
<div style="text-align: left; padding-top: 10px;">
<label>
<img id="captcha_img" src="<?php bloginfo('template_url'); ?>/captcha/captcha.php" />
</label>
</div>
<br clear="all">
将代码二中的:
if( isset($_POST['tougao_form']) && $_POST['tougao_form'] == 'send') {
改成:
if (!isset($_SESSION)) { session_start(); session_regenerate_id(TRUE); } if( isset($_POST['tougao_form']) && $_POST['tougao_form'] == 'send') { if(empty($_POST['captcha_code']) || empty($_SESSION['ludou_lcr_secretword']) || (trim(strtolower($_POST['captcha_code'])) != $_SESSION['ludou_lcr_secretword']) ) { wp_die('验证码不正确!<a href="https://www.maopiaopiao.com">