嘀咕日记

喜欢的就嘀咕一下!

WordPress实现前台发布文章

1、在当前使用的主题根目录下建一个模板:

Php代码:  
  1. <?php
  2. /**
  3. * Template Name: Front Post(前台发布文章)
  4. * 作者:碎石头
  5. */
  6. if‘POST’ == $_SERVER[‘REQUEST_METHOD’] && !emptyempty$_POST[‘action’] ) && $_POST[‘action’] == ‘post’ ) {
  7.   if (!is_user_logged_in() ) auth_redirect();
  8.   if(!current_user_can( ‘publish_posts’ ) ) {
  9.     wp_redirect( get_bloginfo( ‘url’ ) . ‘/’ );
  10.     exit;
  11.   }
  12.   check_admin_referer( ‘new-post’ );
  13.   $user_id  = $current_user->user_id;
  14.   if (isset ($_POST[‘title’])) {
  15.     $title =  $_POST[‘title’];
  16.   } else {
  17.     echo ‘请输入文章标题!’;
  18.   }
  19.   if (isset ($_POST[‘content’])) {
  20.     $content = $_POST[‘content’];
  21.   } else {
  22.     echo ‘请输入文章内容!’;
  23.   }
  24.   $tags = $_POST[‘post_tags’];
  25.   $post = array(
  26.     ‘post_author’   => $user_id,
  27.     ‘post_title’    => $title,
  28.     ‘post_content’  => $content,
  29.     ‘post_category’ => array($_POST[‘cat’]),
  30.     ‘tags_input’    => $tags,
  31.     ‘post_status’   => ‘publish’,
  32.     ‘post_type’     => $_POST[‘post_type’]
  33.   );
  34.   wp_insert_post($post);
  35.   wp_redirect( home_url() );
  36. }
  37. do_action(‘wp_insert_post’‘wp_insert_post’);
  38. ?>
  39. <?php get_header(); ?>
  40. <div style=“width:100%; text-align: center;”>
  41.   <div style=“width:96%; text-align: left; padding: 0 20px 0 20px;”>
  42. <?php
  43. if( current_user_can( ‘publish_posts’ ) ) {
  44. ?>
  45. <div style=“width: 100%; font-size: 20px; font-weight: bold; text-align: center;”>发布新文章</div><br/>
  46. <!–以下为发表文章的表单–>
  47. <script type=“text/javascript”>
  48. function log_check(){
  49.   if(new_post.title.value==“” || new_post.title.value==“输入文章标题”){
  50.     alert(“请输入文章标题!”);
  51.     new_post.title.focus();
  52.     return false;
  53.   }
  54.   if(new_post.post_tags.value==“” || new_post.title.value==“输入文章TAGS,用单引号隔开”){
  55.     alert(“请设置文章标签!”);
  56.     new_post.post_tags.focus();
  57.     return false;
  58.   }
  59.   if(new_post.description.value==“”){
  60.     alert(“请输入文章内容!”);
  61.     new_post.description.focus();
  62.     return false;
  63.   }
  64.   if(new_post.cat.value==“” || new_post.cat.value==“-1”){
  65.     alert(“请选择文章分类!”);
  66.     new_post.cat.focus();
  67.     return false;
  68.   }
  69. }
  70. </script>
  71. <form id=“new_post” name=“new_post” method=“post” action=” “ onsubmit=“return log_check();”>
  72.   <p><label for=“title”>文章标题:</label><input type=“text” id=“title” value=“输入文章标题” onfocus=“this.value==this.defaultValue?this.value=”:null;” onblur=“this.value==”?this.value=’输入文章标题’:null;” tabindex=“1” size=“80” name=“title” /></p>
  73.   <p><label for=“post_tags”>文章标签:</label><input type=“text” value=“输入文章TAGS,用单引号隔开” onfocus=“this.value==this.defaultValue?this.value=”:null;” onblur=“this.value==”?this.value=’输入文章TAGS,用单引号隔开’:null;” tabindex=“5” size=“80” name=“post_tags” id=“post_tags” /></p>
  74.   <p><label for=“cat”>文章分类:</label><?php /*wp_dropdown_categories( ‘show_option_none=选择文章分类&tab_index=4&taxonomy=category’ );*/wp_dropdown_categories( ‘tab_index=4&taxonomy=category’ ); ?></p>
  75.   <p><label for=“content”>文章内容:</label>
  76. <?php wp_editor( , content, $settings = array(
  77.                     ‘quicktags’=>1,
  78.                     ‘tinymce’=>0,
  79.                     ‘media_buttons’=>0,
  80.                     ‘textarea_rows’=>4,
  81.                     ‘editor_class’=>“textareastyle”
  82. ) ); ?></p>
  83.   <input type=“hidden” name=“post_type” id=“post_type” value=“post” />
  84.   <input type=“hidden” name=“action” value=“post” />
  85.   <p style=“width: 100%; text-align: center;”>
  86.   <input type=“submit” value=“发  布” tabindex=“6” id=“submit” name=“submit” class=“inputy”/>
  87.   <input type=“reset” value=“重  置” id=“reset” name=“” class=“inputn”/>
  88.   </p>
  89.   <?php wp_nonce_field( ‘new-post’ ); ?>
  90. </form>
  91. <?php
  92. }else{
  93. ?>
  94. 对不起,您没有发布文章的权限!
  95. <?php
  96. }
  97. ?>
  98.   </div>
  99. </div>
  100. <?php get_footer(); ?>

 

二、新建一个页面,模板选择刚才新建的“Front Post”;

三、通过
http://<域名>/?page_id=<刚才新建的页面ID>

即可访问发布文章页面。

点赞

发表评论

邮箱地址不会被公开。