午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    分享wordpress添加游客投稿頁面功能
    來源:易賢網(wǎng) 閱讀:1840 次 日期:2014-09-22 11:52:55
    溫馨提示:易賢網(wǎng)小編為您整理了“分享wordpress添加游客投稿頁面功能”,方便廣大網(wǎng)友查閱!

    相信有不少站長朋友都或多或少接觸過wordpress吧,其中很多人都需要一個(gè)投稿頁面,當(dāng)然其中好處不言而喻了。網(wǎng)上有的投稿插件是英文的,有的類似于留言本,有的會顯示亂碼,而今天筆者就教大家自己做一個(gè)插件來實(shí)現(xiàn)投稿功能。

    首先新建submit_posts_ajax.php,將以下內(nèi)容復(fù)制進(jìn)去:

    <?php

    function submit_posts_ajax(){

    if($_POST['submit_posts_ajax']=='yinheli'){

    $title=strip_tags(trim($_POST['post_title']));

    $name=trim($_POST['your_name']);

    $mail=trim($_POST['your_email']);

    $site=trim($_POST['your_site']);

    $content=stripslashes(trim($_POST['post_content']));

    $tags=strip_tags(trim($_POST['post_tags']));

    global $wpdb;

    $db="SELECT post_title FROM $wpdb->posts WHERE post_title = '$title' LIMIT 1";

    if ($wpdb->get_var($db)){

    echo '<div class="ps_errormsg">發(fā)現(xiàn)重復(fù)文章.你已經(jīng)發(fā)表過了.或者存在該文章</div>';

    die();

    }

    if(!empty($site)){

    if(substr($site, 0, 7) != 'http://') $site= 'http://'.$site;

    $author='<a href="'.$site.'" title="'.$name.'">'.$name.'</a>';

    }else{

    $author=$name;

    }

    $info='<div class="post_submit_info">感謝: '.$author.' 的供稿.</div>'."nn";

    if(isset($_POST['post_submit'])){

    //錯(cuò)誤判斷

    if($title==''){

    echo '<div class="ps_errormsg">錯(cuò)誤:沒有填寫標(biāo)題!</div>';

    die();

    }

    elseif($mail==''){

    echo '<div class="ps_errormsg">錯(cuò)誤:沒有填寫郵箱地址.</div>';

    die();

    }

    elseif($content==''){

    echo '<div class="ps_errormsg">錯(cuò)誤:還沒有填寫內(nèi)容!!!</div>';

    die();

    }else{

    //提交數(shù)據(jù)

    $content=$info.$content;

    $submitdata=array(

    'post_title' =>$title,

    'post_content' =>$content,

    'tags_input' =>$tags,

    'post_status' => 'pending'

    );

    $post_id = wp_insert_post($submitdata,$wp_error = false);

    $subject='您給[ '.get_option('blogname').' ]寫了篇文章 標(biāo)題是: '.$title;

    $message='非常感謝您的供稿.您的稿件已經(jīng)提交.等待管理員的審核. 以下是您提交的內(nèi)容:<hr>'.stripslashes(trim($_POST['post_content']));

    yinheli_sendmail_ps($mail,$subject,$message);

    echo '<div class="ps_msg">非常感謝您的供稿.您的稿件已經(jīng)提交.等待管理員的審核.請耐心等待.</div>';

    @header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));

    die();

    }

    }

    if(isset($_POST['post_review'])){

    if(''==$content){

    echo '還沒有填寫內(nèi)容';

    die();

    }

    if(''==$tags) $tags='您還沒有填寫 標(biāo)簽 (Tags)';

    echo '<div class="ps_reviewmsg">

    <h2>'.$title.'</h2>

    <div class="ps_reviewcontent">

    '.$info.$content.'

    <p class="ps_reviewtags">標(biāo)簽:'.$tags.'</p>

    </div>

    </div>';

    die();

    }

    die();

    }

    }

    function yinheli_sendmail_ps($to,$subject,$message){

    $blogname = get_option('blogname');

    $charset = get_option('blog_charset');

    $ps_sendmail_headers = "From: $blogname n" ;

    $ps_sendmail_headers .= "MIME-Version: 1.0n";

    $ps_sendmail_headers .= "Content-Type: text/html;charset="$charset"n";

    return @wp_mail($to, $subject, $message, $ps_sendmail_headers);

    }

    function submit_posts_load_js(){

    echo "n".'<script type="text/javascript" src="' . get_bloginfo('wpurl') . '/wp-content/plugins/submit_posts/submit_posts.js"></script>'."n";

    }

    add_action('init', 'submit_posts_ajax');

    require_once('submit_posts.php');

    function submit_posts_display(){

    submit_posts_load_js();

    $submit_posts_html=submit_posts_html();

    return $submit_posts_html;

    }

    add_shortcode('submit_posts','submit_posts_display');

    ?>

    接下來新建submit_posts.php,同樣將以下內(nèi)容復(fù)制進(jìn)去:

    <script type="text/javascript">

    <!--

    //-->

    </script><?php

    function submit_posts_html(){

    ob_end_clean();

    ob_start();

    ?>

    <div id="ps_msg">歡迎給我供稿</div>

    <form id="post_submit_form" name="post_submit_form" method="post" action="">

    <div class="row">

    <input type="hidden" name="submit_posts_ajax" id="submit_posts_ajax" value="yinheli"/>

    <label><input type="text" name="post_title" id="post_title" tabindex="1" value="<?php echo strip_tags($_POST['post_title']);?>"/> 投稿標(biāo)題(必填)</label>

    </div>

    <div class="row">

    <label><input type="text" name="your_name" id="your_name" tabindex="2" value="<?php echo $_POST['your_name'];?>" /> 您的名字或昵稱</label>

    </div>

    <div class="row">

    <label><input type="text" name="your_email" id="your_email" tabindex="3" value="<?php echo $_POST['your_email'];?>" /> 您的郵箱(必填)</label>

    </div>

    <div class="row">

    <label><input type="text" name="your_site" id="your_site" tabindex="4" value="<?php echo $_POST['your_site'];?>" /> 您的網(wǎng)站</label>

    </div>

    <div class="row">

    <textarea name="post_content" cols="50" rows="15" id="post_content" tabindex="5"><?php echo stripslashes($_POST['post_content']);?></textarea>

    </div>

    <div class="row">

    <label><input type="text" name="post_tags" id="post_tags" tabindex="6" value="<?php echo strip_tags($_POST['post_tags']);?>" /> 標(biāo)簽(tags)[每個(gè)標(biāo)簽用半角的逗號分開]</label>

    </div>

    <div id="submit_post">

    <input type="submit" name="post_review" id="post_review" value="預(yù)覽" tabindex="7" />

    <input type="submit" name="post_submit" id="post_submit" value="提交" tabindex="8" />

    </div>

    <div style="clear:both"></div>

    </form>

    <?php

    $html=ob_get_contents();

    ob_end_clean();

    return $html;

    }

    ?>

    最后再新建submit_posts.js,將以下內(nèi)容復(fù)制進(jìn)去:

    /*

    Author: 89948

    Update: 2009/04/11

    Author URI: http://www.89948.net/

    */

    (function(){

    if(!window.YHLJSPS) window['YHLJSPS']={};

    function isCompatible(other) {

    if( other===false

    || !Array.prototype.push

    || !Object.hasOwnProperty

    || !document.createElement

    || !document.getElementsByTagName

    ) {

    alert('TR- if you see this message isCompatible is failing incorrectly.');

    return false;

    }

    return true;

    }

    function $(id){

    return document.getElementById(id);

    }

    var xmlHttp;

    function getXmlHttpObject(){

    var xmlHttp = null;

    try {

    xmlHttp = new XMLHttpRequest();

    } catch(e) {

    try {

    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

    } catch(e) {

    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

    }

    }

    return xmlHttp;

    }

    function setStyle(element, key, value) {

    element.style[key] = value;

    }

    function addEvent(node,type,listener){

    if(!isCompatible()) { return false }

    if(node.addEventListener){

    node.addEventListener(type,listener,false);

    return true;

    }else if(node.attachEvent){

    node['e'+type+listener]=listener;

    node[type+listener]=function(){

    node['e'+type+listener](window.event);

    }

    node.attachEvent('on'+type,node[type+listener]);

    return true;

    }

    }

    function insertAfter(node, referenceNode) {

    if(!(node = $(node))) return false;

    if(!(referenceNode = $(referenceNode))) return false;

    return referenceNode.parentNode.insertBefore(node, referenceNode.nextSibling);

    };

    function preventDefault(eventObject) {

    eventObject = eventObject || getEventObject(eventObject);

    if(eventObject.preventDefault) {

    eventObject.preventDefault();

    } else {

    eventObject.returnValue = false;

    }

    }

    function formToRequestString(form_obj,val){

    var query_string='';

    var and='&';

    for (i=0;i<form_obj.length ;i++ ){

    e=form_obj[i];

    if (e.name!='' && e.type!='submit'){

    if (e.type=='select-one'){

    element_value=e.options[e.selectedIndex].value;

    }else if (e.type=='checkbox' || e.type=='radio'){

    if (e.checked==false){

    break;

    }element_value=e.value;

    }else{

    element_value=e.value;

    }

    query_string+=and+encodeURIComponent(e.name)+'='+encodeURIComponent(element_value);

    }

    }

    return query_string;

    }

    function setopacity(node,opacity){

    setStyle(node, 'opacity', opacity);

    setStyle(node, 'MozOpacity', opacity);

    setStyle(node, 'KhtmlOpacity', opacity);

    setStyle(node, 'filter', 'alpha(opacity=' + opacity * 100 + ')');

    return;

    }

    function stateChangeListener(){

    var r_msg=$('ps_msg');

    var the_form=$('post_submit_form');

    if(xmlHttp.readyState==1){

    r_msg.innerHTML='數(shù)據(jù)載入中,請稍候...';

    setopacity(the_form,0.8);

    $('post_submit').disabled=true;

    window.scrollTo(0,r_msg.offsetTop+15);

    }else if(xmlHttp.readyState==4 && xmlHttp.status==200){

    r_msg.innerHTML=xmlHttp.responseText;

    setopacity(the_form,1);

    setTimeout(function(){$('post_submit').disabled=false;},1000);

    }else if(xmlHttp.status!=200){

    alert('呃 出錯(cuò)了 (建議您保存好文章再刷新瀏覽器.) 錯(cuò)誤信息:'+xmlHttp.statusText);

    }

    }

    function submitactiontype(type){

    var A=formToRequestString($('post_submit_form'))+'&'+encodeURIComponent($(type).name)+'='+encodeURIComponent($(type).value);

    return A;

    }

    function ps_submit(action){

    xmlHttp = getXmlHttpObject();

    if (xmlHttp == null) {

    alert ("Oop! Browser does not support HTTP Request.")

    return;

    }

    var url=window.location.href;

    if(action=='post_submit'){

    var senddata=submitactiontype(action);

    }

    if(action=='post_review'){

    var senddata=submitactiontype(action);

    }

    xmlHttp.onreadystatechange=function(){

    stateChangeListener();

    }

    xmlHttp.open("POST", url, true);

    xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

    xmlHttp.send(senddata);

    }

    function initps(){

    addEvent($('post_submit'),'click',function(W3CEvent){

    ps_submit(action='post_submit');

    //alert(action);

    preventDefault(W3CEvent);

    });

    addEvent($('post_review'),'click',function(W3CEvent){

    ps_submit(action='post_review');

    //alert(action);

    preventDefault(W3CEvent);

    });

    }

    if (document.addEventListener) {

    document.addEventListener("DOMContentLoaded", initps, false);

    } else if (/MSIE/i.test(navigator.userAgent)) {

    document.write('<script id="__ie_onload_for_post_posts" defer src="javascript:void(0)"></script>');

    var script = $('__ie_onload_for_post_posts');

    script.onreadystatechange = function() {

    if (this.readyState == 'complete') {

    initps();

    }

    }

    } else if (/WebKit/i.test(navigator.userAgent)) {

    var _timer = setInterval( function() {

    if (/loaded|complete/.test(document.readyState)) {

    clearInterval(_timer);

    initps();

    }

    }, 10);

    } else {

    window.onload = function(e) {

    initps();

    }

    }

    })();

    把以上三個(gè)文件保存在submit_posts文件夾內(nèi),上傳至插件目錄,并進(jìn)后臺安裝該插件。使用時(shí)只需要新建頁面并輸入[submit_posts]即可調(diào)用出。

    更多信息請查看IT技術(shù)專欄

    更多信息請查看CMS教程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:分享wordpress添加游客投稿頁面功能
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
    相關(guān)閱讀CMS教程

    2025國考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)