WordPress无插件实现游客投稿功能

WordPress不安装插件如何实现游客投稿功能?SEO博客推荐下面方法轻松实现。

首先,复制文件page.php重命名为contribute.php。

其次,将contribute.php文件中,在<?php get_header(); ?>前面添加如下代码:

  1. <?php
  2. /*
  3. Template Name:游客投稿
  4. */
  5. if(isset($_POST[‘contributeform‘])&&$_POST[‘contributeform‘]==‘send‘){
  6. global $wpdb;
  7. $last_post=$wpdb->get_var("SELECT post_date FROM $wpdb->posts WHERE post_type = ‘post‘ ORDER BY post_date DESC LIMIT 1");
  8. if(current_time(‘timestamp‘)-strtotime($last_post)<60){wp_die(‘投稿间隔应至少为1分钟!‘);}
  9. $name=isset($_POST[‘authorname‘])?trim(htmlspecialchars($_POST[‘authorname‘],ENT_QUOTES)):‘‘;
  10. $email=isset($_POST[‘authoremail‘])?trim(htmlspecialchars($_POST[‘authoremail‘],ENT_QUOTES)):‘‘;
  11. $url=isset($_POST[‘authorurl‘])?trim(htmlspecialchars($_POST[‘authorurl‘],ENT_QUOTES)):‘‘;
  12. $title=isset($_POST[‘articletitle‘])? trim(htmlspecialchars($_POST[‘articletitle‘],ENT_QUOTES)):‘‘;
  13. $category=isset($_POST[‘cat‘])?(int)$_POST[‘cat‘]:0;
  14. $content=isset($_POST[‘articlecontent‘])?trim(htmlspecialchars($_POST[‘articlecontent‘],ENT_QUOTES)):‘‘;
  15. if(emptyempty($name)||mb_strlen($name)>30){wp_die(‘作者笔名必须填写,且长度不能超过30个字符!‘);}
  16. if(emptyempty($email)||strlen($email)>60||!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix",$email)){wp_die(‘作者邮箱必须填写,且长度不能超过60个字符,并符合邮箱格式!‘);}
  17. if(emptyempty($title)||mb_strlen($title)>120){wp_die(‘文章标题必须填写,且长度不能超过120个字符!‘);}
  18. if(emptyempty($content)||mb_strlen($content)>20000||mb_strlen($content)<100){wp_die(‘文章内容必须填写,且长度不能超过20000个字符,不能少于100个字符!‘);}
  19. $post_content=‘作者笔名:‘.$name.‘<br />作者邮箱:‘.$email.‘<br />作者主页:‘.$url.‘<br />文章内容:<br />‘.$content;
  20. $contribute=array(‘post_title‘=>$title,‘post_content‘=>$post_content,‘post_category‘=>array($category));
  21. $status=wp_insert_post($contribute);
  22. if($status!=0){
  23. wp_mail(‘‘.get_option(‘blog_mail_username‘).‘‘,‘‘.get_option(‘blogname‘).‘游客投稿‘,‘您的‘.get_option(‘blogname‘).‘有游客投稿!‘);
  24. wp_die(‘投稿成功,您的文章将在审核通过后发布!‘,‘投稿成功‘);}
  25. else{wp_die(‘投稿失败‘);}}
  26. ?>

再次,在<?php the_content(); ?>后面添加如下代码:

  1. <form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
  2. <div class="contributebox">
  3. <div class="inputclass"><input type="text" name="authorname" id="authorname" value="" /><label for="authorname">作者笔名(必填)</label></div>
  4. <div class="inputclass"><input type="text" name="authoremail" id="authoremail" value="" /><label for="authoremail">作者邮箱(必填)</label></div>
  5. <div class="inputclass"><input type="text" name="authorurl" id="authorurl" value="" /><label for="authorurl">作者主页</label></div>
  6. <div class="inputclass"><input type="text" name="articletitle" id="articletitle" value="" /><label for="articletitle">文章标题(必填)</label></div>
  7. <div class="inputclass"><?php wp_dropdown_categories(‘show_count=1&hierarchical=1‘); ?><label for="cat">文章分类(必选)</label></div>
  8. <textarea name="articlecontent" id="articlecontent" onblur="if(this.innerHTML==‘‘){this.innerHTML=‘文章内容...‘;this.style.color=‘‘}" onFocus="if(this.innerHTML==‘文章内容...‘){this.innerHTML=‘‘;this.style.color=‘‘}">文章内容...</textarea>
  9. <input type="hidden" value="send" name="contributeform" />
  10. <input type="submit" class="contributesubmit" id="contributesubmit" value="确认投稿" />
  11. </div>
  12. </form>

最后,新建一个页面,模板选择“游客投稿”(contribute.php),就形成了一个投稿页面。

时间: 2024-09-30 04:10:07

WordPress无插件实现游客投稿功能的相关文章

黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户、主题、插件、设置等功能

建立好了子站,我们需要有个地方配置所有子站的主题.插件等功能,我们可以在后台看到 我的站点--管理网络 如下图: 在 管理网络--仪表盘 里面,我们可以创新用户和站点,也提供了查询功能. 要注意的是:当你新上传的主题或者插件,都需要在管理网络那边的主题和插件里面将你上传的主题和插件开启.这样才可以在你的子站点中查看的到. 黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户.主题.插件.设置等功能

WordPress缓存插件WP Super Cache的使用及常见问题解决

WP Super Cache是一款很好的WordPress优化插件,是我用过最好的一款缓存插件.打开WordPress后台搜索插件页面,第一个就是这个插件,可想而知他的地位有多厉害了. 什么是WP Super Cache? WP Super Cache从你的动态Wordpress Blog中生成静态的html文件.当一个html文件生成后,你的服务器就会用显示这个文件来取代处理相对而言需要更大工作量和更多WordPress PHP脚本的动作. 生成的静态html文件会为你的绝大部分用户服务,除了

推荐10+必备的 WordPress 常用插件

众多的WordPress插件,使得WordPress的功能得到了较大的扩展,但是也正是由于过多的插件,导致我们很难选择所需的插件.今天,倡萌就根据自己的经验,给WordPress新手推荐一些常用的插件.虽然是推荐,但是也要根据自己的实际来安装哦. Akismet Akismet 是 WordPress 官方推荐的一款 WordPress 防垃圾评论插件,也是默认已安装的插件. WP-Postviews 最好的最流行的WordPress浏览次数统计插件莫过于WP-Postviews,该插件可以统计

WordPress常用插件

1.Remove Open Sans font Link from WP core 由于Wordpress后台外链加载了谷歌字体(代码位置在wordpress\wp-includes\script-loader.php第580行),而谷歌服务器访问慢或者被墙会严重影响页面加载速度.开启本插件后就会去除谷歌字体(而不是替代). 2.Loading Page with Loading Screen 加载页面元素时显示进度条.免费方案有限制但够用了.收费版本有自带的lazyload. 3.Media

Knockout.js 数据验证之插件版和无插件版

本文我们将介绍使用 Knockout.js 实现一些基本的数据验证.就如我们在标题里提到的,我们会使用两种方法来创建数据验证方法. 使用自定义方法,不需要任何插件 最简单的方法是使用已有的插件 如果你刚刚接触 Knockout.js,强烈建议你阅读我之前的 文章,那篇文章中我分享了一些关于 Knockout.js 的基本知识.本文我们使用 Visual Studio 进行开发,希望你能喜欢.现在开始. 源码下载 Knockout.js Validations 第 1 段(可获 1.23 积分)

第一章 1.5 无插件范式

过去,很多功能只能通过插件或者复杂的 hack(本地绘图 API.本地 socket 等)来实现,但在 HTML5 中提供了对这些功能的原生支持.插件的方式存在很多问题: 插件安装可能失败: 插件可以被禁用或屏蔽(例如 Apple 的 iPad 就不支持 Flash 插件): 插件自身会成为被攻击的对象: 插件不容易与 HTML 文档的其他部分集成(因为插件边界.剪裁和透明度问题). 虽然一些插件的安装率很高,但在控制严格的公司内部网络环境中经常会被封锁.此外,由于插件经常还会给用户带来烦人的广

jQuery实现无刷新切换主题皮肤功能

jQuery实现无刷新切换主题皮肤功能 helloweba.com 作者:月光光 时间:2010-12-13 12:49 主题皮肤切换功能在很多网站和系统中应用,用户可以根据此功能设置自己喜欢的主题颜色风格,增强了用户体验.本文将围绕如何使用jQuery实现点击无刷新切换主题皮肤功能. 查看演示 实现该功能的原理就是通过点击定义的主题样式,改变页面当前引用的主题CSS文件,并且将当前的主题样式写入cookie中或者写入数据库中,以便下次该用户重新访问页面时,调用的就是上次设置好的主题样式. 准备

无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 &ndash; 12:00

武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数据格式.目前该产品还没有正式发布,但如果你感兴趣,座位紧张,赶紧报名:   http://www.autodesk.com.cn/adsk/servlet/item?siteID=1170359&id=23581540  (这是系列培训中的一部分)   通用无插件大模型浏览器–Autodesk Vi

002.WordPress常见插件

Akismet Akismet 是 WordPress 官方推荐的一款 WordPress 防垃圾评论插件,也是默认已安装的插件. WP-Postviews 最好的最流行的WordPress浏览次数统计插件莫过于WP-Postviews,该插件可以统计每篇文章的浏览次数,并且可以获取最受欢迎(浏览次数最多)的文章列表. Baidu Sitemap Generator Baidu Sitemap Generator 插件是国人 柳城 制作的,通过它可以生成百度 Sitemap XML 文件. DB