wordpress非插件实现说说、微博、微语功能

2019-04-0422:34:32网站建设与开发Comments3,420 views字数 4451阅读模式

网站使用自己的微博主题,主页应该具备可以显示发表短微博的页面,不然就和微博的初衷有所偏差,所以偶尔兴起经过百度一番,将网站主页修改成了说说、微博的形式,下面就描述一下使用方法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

1、在主题目录下的中添加如下代码,之后在wordpress后台会出现发表说说、编辑说说等链接菜单。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

  1. add_action(‘init’, ‘tle_shuoshuo_init’);
  2. function tle_shuoshuo_init() {
  3.     $labels = array( ‘name’ => ‘说说’, ‘singular_name’ => ‘说说’, ‘add_new’ => ‘发表说说’, ‘add_new_item’ => ‘发表说说’, ‘edit_item’ => ‘编辑说说’, ‘new_item’ => ‘新说说’, ‘view_item’ => ‘查看说说’, ‘search_items’ => ‘搜索说说’, ‘not_found’ => ‘暂无说说’, ‘not_found_in_trash’ => ‘没有已遗弃的说说’, ‘parent_item_colon’ => , ‘menu_name’ => ‘说说’ );
  4.     $args = array( ‘labels’ => $labels, ‘public‘ => true, ‘publicly_queryable’ => true, ‘show_ui’ => true, ‘show_in_menu’ => true, ‘query_var’ => true, ‘rewrite’ => true, ‘capability_type’ => ‘post’, ‘has_archive’ => true, ‘hierarchical’ => false, ‘menu_position’ => null, ‘supports’ => array(‘title’,’editor’,’author’) );
  5.     register_post_type(‘shuoshuo’,$args);
  6. }

2、在主题目录建立页面模板(文件名任意,如:),并在其中添加如下代码(因为说说的样式可以自定义,所以这里只写出关键代码,仅供参考。)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

  1. <ul>
  2.     <?php
  3.     query_posts(“post_type=shuoshuo&post_status=publish&posts_per_page=-1”);
  4.     if (have_posts()) : while (have_posts()) : the_post();
  5.     ?>
  6.     <li>
  7.         <span class=“shuoshuo_author_img”>
  8.             <img src=“” class=“avatar avatar-48” width=“48” height=“48”>
  9.         </span>
  10.         <a href=“javascript:void(0)”>
  11.             <p></p>
  12.             <p><?php the_content(); ?></p>
  13.             <p></p>
  14.             <p><i class=“fa fa-clock-o”></i>
  15.                 <?php the_time(‘Y年n月j日G:i’); ?>
  16.             </p>
  17.         </a>
  18.     </li>
  19.     <?php
  20.     endwhile;
  21.     endif;
  22.     ?>
  23. </ul>

但是如果想对说说进行分页的话,可以使用如下关键代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

  1. <?php
  2. $temi=0;
  3. query_posts(“post_type=shuoshuo&post_status=publish&posts_per_page=-1”);
  4. if (have_posts()) : while (have_posts()) : the_post();
  5.     $shuoshuo[$temi][“post_date”]=timeago( get_gmt_from_date($post->post_date) );
  6.     $shuoshuo[$temi][“post_content”]=$post->post_content;
  7.     $shuoshuo[$temi][“post_author”]=$post->post_author;
  8.     $shuoshuo[$temi][“guid”]=$post->guid;
  9.     $temi++;
  10. endwhile;
  11. endif;
  12. $page_now = isset($_GET[‘page_now’]) ? intval($_GET[‘page_now’]) : 1;
  13. if($page_now<1){
  14.     $page_now=1;
  15. }
  16. $page_rec=1;
  17. $totalrec=count($shuoshuo);
  18. $page=ceil($totalrec/$page_rec);
  19. if($page_now>$page){
  20.     $page_now=$page;
  21. }
  22. if($page_now<=1){
  23.     $before_page=1;
  24.     if($page>1){
  25.         $after_page=$page_now+1;
  26.     }else{
  27.         $after_page=1;
  28.     }
  29. }else{
  30.     $before_page=$page_now-1;
  31.     if($page_now<$page){
  32.         $after_page=$page_now+1;
  33.     }else{
  34.         $after_page=$page;
  35.     }
  36. }
  37. $i=($page_now-1)*$page_rec<0?0:($page_now-1)*$page_rec;
  38. $start=($page_now-1)*$page_rec;
  39. $shuoshuo = array_slice($shuoshuo,$start,$page_rec);
  40. if(count($shuoshuo)>0){
  41.     global $wpdb;
  42.     ?>
  43.     <ul>
  44.         <?php
  45.         foreach($shuoshuo as $value){
  46.             $authorRow = $wpdb->get_row(“SELECT display_name FROM “.$wpdb->prefix.“users WHERE ID = “.$post->post_author);
  47.         ?>
  48.         <li class=“tleajaxpage”>
  49.             <div>
  50.               <a href=“<?php if( !is_author()){echo get_author_posts_url( get_the_author_meta( ‘ID’ ) );} ?>”>
  51.                 <img src=“”/><!–头像这里可以使用Gravatar或其他方式–>
  52.               </a>
  53.             </div>
  54.             <div>
  55.                 <small><?=$value[“post_date”];?></small>
  56.                 <div>
  57.                     <small>
  58.                         <?php
  59.                         if( !post_password_required() ){
  60.                             echo ‘<a href=“‘.$value[“guid“].'”>’.tle_strimwidth(strip_tags(apply_filters(‘the_content’, $value[“post_content”])), 0, 140, ‘…’).'</a>’;
  61.                         }else{
  62.                             echo ‘密码保护文章,暂无摘要!’;
  63.                         }
  64.                         ?>
  65.                     </small>
  66.                 </div>
  67.             </div>
  68.         </li>
  69.         <?php
  70.         }
  71.         ?>
  72.     </ul>
  73.     <ul>
  74.       <?php if($page_now!=1){?>
  75.         <li><a href=“?page_now=1”>首页</a></li>
  76.       <?php }?>
  77.       <?php if($page_now>1){?>
  78.         <li><a href=“?page_now=<?=$before_page;?>”>&laquo; 上一页</a></li>
  79.       <?php }?>
  80.       <?php if($page_now<$page){?>
  81.         <li><a href=“?page_now=<?=$after_page;?>”>下一页 &raquo;</a></li>
  82.       <?php }?>
  83.       <?php if($page_now!=$page){?>
  84.         <li><a href=“?page_now=<?=$page;?>”>尾页</a></li>
  85.       <?php }?>
  86.     </ul>
  87. <?php
  88. }else{
  89.     include get_stylesheet_directory().“/”;
  90. }
  91. ?>

3、在wordpress后台新建页面(如:),并指定页面模板为以上所创建的说说模板,再指定个别名(如:t)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

wordpress非插件实现说说、微博、微语功能文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

通过以上步骤即可实现wordpress非插件的说说、微博、微语功能,以下步骤为细节方面的步骤:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

4、如果你的文章页面内存在面包屑导航的话,相信在说说内页不会显示分类名称,所以就需要做一下判断,目前为了方便我只是利用$_SERVER[‘REQUEST_URI’]判断地址栏是否存在shuoshuo这个别名再进行显示不同内容而实现的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

5、最后如果想把说说页面变成网站首页,只需使用wordpress自带的系统设置即可(后台->设置->阅读->指定主页的页面)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

wordpress非插件实现说说、微博、微语功能文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/11195.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/cms/11195.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定