中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WordPress中如何添加投稿功能

發布時間:2023-03-06 09:43:39 來源:億速云 閱讀:104 作者:iii 欄目:建站服務器

這篇文章主要講解了“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="'.$current_url.'">點此返回</a>');
    }
        
    // 表單變量初始化
    $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) || mb_strlen($name) > 20 ) {
        wp_die('昵稱必須填寫,且長度不得超過20字。<a href="'.$current_url.'">點此返回</a>');
    }
    
    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格式。<a href="'.$current_url.'">點此返回</a>');
    }
    
    if ( empty($title) || mb_strlen($title) > 100 ) {
        wp_die('標題必須填寫,且長度不得超過100字。<a href="'.$current_url.'">點此返回</a>');
    }
    
    if ( empty($content) || mb_strlen($content) > 3000 || mb_strlen($content) < 100) {
        wp_die('內容必須填寫,且長度不得超過3000字,不得少于100字。<a href="'.$current_url.'">點此返回</a>');
    }
    
    $post_content = '昵稱: '.$name.'<br />Email: '.$email.'<br />blog: '.$blog.'<br />內容:<br />'.$content;
    
    $tougao = array(
        'post_title' => $title, 
        'post_content' => $post_content,
        'post_category' => array($category)
    );
    // 將文章插入數據庫
    $status = wp_insert_post( $tougao );
  
    if ($status != 0) { 
        // 投稿成功給博主發送郵件
        // somebody#example.com替換博主郵箱
        // My subject替換為郵件標題,content替換為郵件內容
        wp_mail("somebody#example.com","My subject","content");
        wp_die('投稿成功!感謝投稿!<a href="'.$current_url.'">點此返回</a>', '投稿成功');
    }
    else {
        wp_die('投稿失敗!<a href="'.$current_url.'">點此返回</a>');
    }
}

最后以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="javascript:void(0)" onclick="document.getElementById('captcha_img').src='<?php bloginfo('template_url'); ?>/captcha/captcha.php?'+Math.random();document.getElementById('CAPTCHA').focus();return false;">點擊更換</a>
 </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="'.$current_url.'">點此返回</a>');
  }

感謝各位的閱讀,以上就是“WordPress中如何添加投稿功能”的內容了,經過本文的學習后,相信大家對WordPress中如何添加投稿功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德阳市| 习水县| 马鞍山市| 陇西县| 天祝| 淮北市| 吴江市| 南涧| 潼南县| 太湖县| 绿春县| 通州市| 吴江市| 航空| 蓝田县| 革吉县| 噶尔县| 遂平县| 焦作市| 通州区| 乡城县| 南充市| 芦溪县| 靖州| 水富县| 孙吴县| 木兰县| 金山区| 且末县| 宿州市| 玉溪市| 宁蒗| 柘城县| 凤冈县| 裕民县| 集贤县| 祥云县| 庆城县| 龙泉市| 侯马市| 双流县|