一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

WordPress实现投稿与会员登录投稿功能

时间:2013-10-28 编辑:简简单单 来源:一聚教程网

WordPress实现投稿功能

一、添加投稿表单

1、首先在当前主题的目录下新建一个php文件,命名为tougao-page.php,然后将page.php中的所有代码复制到tougao-page.php中;

2、删除tougao-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容;

3、将 改成以下代码:

 代码如下 复制代码

">





























<textarea rows="15" cols="55" name="tougao_content">








二、添加表单处理代码

在tougao-page.php中,将第一个

 代码如下 复制代码

if( isset($_POST['tougao_form']) && $_POST['tougao_form'] == 'send')
{
if ( isset($_COOKIE["tougao"]) && ( time() - $_COOKIE["tougao"] ) < 120 )
{
wp_die('您投稿也太勤快了吧,先歇会儿!');
}

// 表单变量初始化     $name = isset( $_POST['tougao_authorname'] ) ? trim(htmlspecialchars($_POST['tougao_authorname'], ENT_QUOTES)) : '';
$email =  isset( $_POST['tougao_authoremail'] ) ? trim(htmlspecialchars($_POST['tougao_authoremail'], ENT_QUOTES)) : '';
$blog =  isset( $_POST['tougao_authorblog'] ) ? trim(htmlspecialchars($_POST['tougao_authorblog'], ENT_QUOTES)) : '';
$title =  isset( $_POST['tougao_title'] ) ? trim(htmlspecialchars($_POST['tougao_title'], ENT_QUOTES)) : '';
$category =  isset( $_POST['cat'] ) ? (int)$_POST['cat'] : 0;
$content =  isset( $_POST['tougao_content'] ) ? trim(htmlspecialchars($_POST['tougao_content'], ENT_QUOTES)) : '';

// 表单项数据验证     if ( empty($name) || strlen($name) > 20 )
{
wp_die('昵称必须填写,且长度不得超过20字');
}

if ( empty($email) || strlen($email) > 60 || !preg_match("/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6}$/ix", $email))
{
wp_die('Email必须填写,且长度不得超过60字,必须符合Email格式');
}

if ( empty($title) || strlen($title) > 100 )
{
wp_die('标题必须填写,且长度不得超过100字');
}

if ( empty($content) || strlen($content) > 3000 || strlen($content) < 100)
{
wp_die('内容必须填写,且长度不得超过3000字,不得少于100字');
}

$post_content = '昵称: '.$name.'
Email: '.$email.'
blog: '.$blog.'
内容:'.$content;

$tougao = array(
'post_title' => $title,
'post_content' => $post_content,
'post_category' => array($category)
);

// 将文章插入数据库     $status = wp_insert_post( $tougao );

if ($status != 0)
{
setcookie("tougao", time(), time()+180);
wp_die('投稿成功!感谢投稿!');
}
else     {
wp_die('投稿失败!');
}
}

代码补充说明,如果你想让让投稿的文章立即发布,而不需要审核再编辑,那么请将以上代码45行改成:

 代码如下 复制代码
'post_content' => $post_content, 'post_status' => 'publish',

最后进入WordPress管理后台 – 页面 – 创建页面,标题为投稿(可以自己起名),内容填上投稿说明等,右侧可以选择模板,选择 tougao 即可好了,基本的投稿功能已经添加完毕,至于表单样式不好看,表单缺少你想要的项目等问题,你就自己添加css、表单项吧

如何实现会员登陆后投稿?请移步到:WordPress 实现会员登陆投稿

下是实现登陆后投稿的一部分代码,我相信看到这段代码,就能实现你想要的功能了。

 代码如下 复制代码
if(!is_user_logged_in()){
?>
 

您需要登陆才能投稿!


 

 

开始投稿!


 这里是投稿的表单,可自行设计........

如想要跟大前端效果一样,那表单处添加这样的HTML代码:

 代码如下 复制代码

您需要登陆才能投稿!


   
   
   

开始投稿!


   

           

  •            
           

  •        

  •            
           

  •        

  •            
           

  •        

  •            
           

  •        

  •            
           

  •        

  •            
           

  •        

  •            
               
           

  •        

  •    

接着就是CSS样式了:

 代码如下 复制代码

对了,还有表单处需要一些参数,以下代码是调用参数的:

 代码如下 复制代码

    global $current_user;
    get_currentuserinfo();
    $cur_id    = $current_user->ID;
    $user_info = get_userdata($cur_id);
    $u_login   = $user_info->user_login;
    $u_mail    = $user_info->user_email;
    $u_time    = $user_info->user_registered;
    $u_name    = get_user_meta($cur_id,'nickname',true);
?>

好了,应该差不多了, 我以经毫无保留的把代码贴出来了,能不能实现就要看你的造化了。至于如何提交,那是本站的核心代码,这个本站恕不分享

热门栏目