网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 分享wordpress添加游客投稿页面功能
内容
    相信有不少站长朋友都或多或少接触过wordpress吧,其中很多人都需要一个投稿页面,当然其中好处不言而喻了。网上有的投稿插件是英文的,有的类似于留言本,有的会显示乱码,而今天笔者就教大家自己做一个插件来实现投稿功能。
    首先新建submit_posts_ajax.php,将以下内容复制进去:
    <?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>发现重复文章.你已经发表过了.或者存在该文章</div>';
    die();
    }
    if(!empty($site)){
    if(substr($site, 0, 7) != 'http://') $site= 'http://'.$site;
    $author='<a href="'.$site.'">'.$name.'</a>';
    }else{
    $author=$name;
    }
    $info='<div>感谢: '.$author.' 的供稿.</div>'."nn";
    if(isset($_POST['post_submit'])){
    //错误判断
    if($title==''){
    echo '<div>错误:没有填写标题!</div>';
    die();
    }
    elseif($mail==''){
    echo '<div>错误:没有填写邮箱地址.</div>';
    die();
    }
    elseif($content==''){
    echo '<div>错误:还没有填写内容!!!</div>';
    die();
    }else{
    //提交数据
    $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').' ]写了篇文章 标题是: '.$title;
    $message='非常感谢您的供稿.您的稿件已经提交.等待管理员的审核. 以下是您提交的内容:<hr>'.stripslashes(trim($_POST['post_content']));
    yinheli_sendmail_ps($mail,$subject,$message);
    echo '<div>非常感谢您的供稿.您的稿件已经提交.等待管理员的审核.请耐心等待.</div>';
    @header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
    die();
    }
    }
    if(isset($_POST['post_review'])){
    if(''==$content){
    echo '还没有填写内容';
    die();
    }
    if(''==$tags) $tags='您还没有填写 标签 (Tags)';
    echo '<div>
    <h2>'.$title.'</h2>
    <div>
    '.$info.$content.'
    <p>标签:'.$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,同样将以下内容复制进去:
    <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>
    <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']);?>"/> 投稿标题(必填)</label>
    </div>
    <div>
    <label><input type="text" name="your_name" id="your_name" tabindex="2" value="<?php echo $_POST['your_name'];?>" /> 您的名字或昵称</label>
    </div>
    <div>
    <label><input type="text" name="your_email" id="your_email" tabindex="3" value="<?php echo $_POST['your_email'];?>" /> 您的邮箱(必填)</label>
    </div>
    <div>
    <label><input type="text" name="your_site" id="your_site" tabindex="4" value="<?php echo $_POST['your_site'];?>" /> 您的网站</label>
    </div>
    <div>
    <textarea name="post_content" cols="50" rows="15" id="post_content" tabindex="5"><?php echo stripslashes($_POST['post_content']);?></textarea>
    </div>
    <div>
    <label><input type="text" name="post_tags" id="post_tags" tabindex="6" value="<?php echo strip_tags($_POST['post_tags']);?>" /> 标签(tags)[每个标签用半角的逗号分开]</label>
    </div>
    <div id="submit_post">
    <input type="submit" name="post_review" id="post_review" value="预览" tabindex="7" />
    <input type="submit" name="post_submit" id="post_submit" value="提交" tabindex="8" />
    </div>
    <div></div>
    </form>
    <?php
    $html=ob_get_contents();
    ob_end_clean();
    return $html;
    }
    ?>
    最后再新建submit_posts.js,将以下内容复制进去:
    /*
    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='数据载入中,请稍候...';
    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('呃 出错了 (建议您保存好文章再刷新浏览器.) 错误信息:'+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();
    }
    }
    })();
    把以上三个文件保存在submit_posts文件夹内,上传至插件目录,并进后台安装该插件。使用时只需要新建页面并输入[submit_posts]即可调用出。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/22 9:53:33