AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️AdsPower:安全不封号,高效自动化Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】
FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线
【官方】❤️搜索套利买量投流开户独立站⚡️开户投放FB BM不限额,短id账单户E.PN 虚拟卡
BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理
虚拟信用卡+独立站收款Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)
FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户FB资源,账单户,分享户,国内一手
FB企业户,TT老户,GG老户源头PTM全球虚拟卡—进来交个朋友!PTM虚拟卡⚡️费率透明⚡️额度随心FB虚拟卡⚡️消费越多返现越多
虚拟FB卡 ⚡️ 透明条件 国内外持牌,虚拟信用卡和收付款广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 7377|回复: 2

[WP教程] 四种实现wordpress不用插件调用随机文章的 方法

[复制链接]

122

主题

199

广告币

291

积分

初级会员

888888888888888

Rank: 2

积分
291
发表于 2017-12-1 21:23:58 | 显示全部楼层 |阅读模式
Lemft
方法一:代码最简单的方法

在需要显示的地方直接调用如下代码(张自然现在就用这种方法,经张自然修改后,兼容inove系列主题

  1. <li class="widget widget_numberposts">1 A6 j+ v% V5 S* E2 F1 B
  2. <h3>随遍看看吧</h3>
    : I& p) i2 \$ D2 I" ?& T+ _
  3. <ul>
    - e) H8 R, G7 R4 u) a! Y
  4. <?php $rand_posts = get_posts('numberposts=8&orderby=rand');
      {5 @/ ~4 e+ O- i& P, k+ D7 W7 s
  5. foreach( $rand_posts as $post ) : ?>
    7 Z4 V7 U+ L+ c) O& Y3 k1 ]' O
  6. <li>) U. K# K/ S: [9 u0 k9 ]9 t1 t# `. k
  7. <a target="_blank" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    ! \$ Y8 E% w8 C  f3 S5 a1 O
  8. </li>1 ^5 g% _/ q! }3 E+ G7 C
  9. <?php endforeach; ?>" s7 Y: f! A! F
  10. </ul>
复制代码

这个方法虽然简单,但用到了get_posts,如果将代码放在子页模板里,在他之后的代码,比如如果在后面同时调用了当前文章的评论,那评论内容很可能,出现的是最后一个随机到的文章的评论,而非当前文章的评论。


  c. [: _) ^4 X方法二:在随机文章中显示标题和文章摘要在需要显示的地方直接调用如下代码+ |3 x0 d8 Z3 f8 X: e, _
  1. <?php
    0 K$ U* K! q+ W( w' i% \! t4 P
  2. query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 1));; t3 ]( J( k" k, E
  3. if (have_posts()) :6 Q7 ^$ R3 E+ i
  4. while (have_posts()) : the_post();- r* u; [" O: D6 ]
  5. the_title(); //这行去掉就不显示标题
    6 E3 ^0 m+ I/ o- H* d
  6. the_excerpt(); //去掉这个就不显示摘要了( L! H% D' [8 L7 v' k' J; W8 {& y
  7. endwhile;5 D) e! |: A5 Q9 z% I- e0 ~0 K
  8. endif; ?>
复制代码
方法三:用query_posts生成随机文章列表

在需要显示的地方直接调用如下代码

  1. <?php+ q  f9 U, F# u) J; U
  2. query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 2));
    4 D6 Y/ n  A% M/ |, g! M4 a
  3. if (have_posts()) :  I. u0 N( h3 B% I9 c
  4. while (have_posts()) : the_post();?>) |) O/ a% }7 N: i" [: c
  5. <a href=”<?php the_permalink() ?>”
    , m1 Z0 [6 m. S9 Y
  6.         rel=”bookmark”. w6 Y& E' N: j! }& n9 A) I
  7.         title=<?php the_title(); ?>”><?php the_title(); ?></a>
    0 z# ^, p1 ?( p, i% e/ x* k; {
  8.         <?php comments_number(”, ‘(1)’, ‘(%)’); ?>
    % Y6 Q+ b5 O, I6 u9 H) K
  9. <?php endwhile;endif; ?>
复制代码
方法四:在function.php中加入如下代码

在function.php中加入如下代码

  1. /**# V# f& b: J# n/ z
  2. * 随机文章
    4 C6 ^: y- g& a
  3. */: ?6 a- B' T" d
  4. function random_posts($posts_num=5,$before='<li>',$after='</li>'){
    - X! H/ L2 G5 Y: C+ l+ @
  5.         global $wpdb;
    2 {" L1 Q2 |5 ~% M5 o! S8 C
  6.         $sql = "SELECT ID, post_title,guid5 Q+ N. a! i7 e- C/ [3 k1 U" T* N
  7.                         FROM $wpdb->posts
    ) d8 Q$ x2 _% {" e/ h9 W
  8.                         WHERE post_status = 'publish' ";; a  k7 p9 x* Y3 ~/ D! s# V# ]
  9.         $sql .= "AND post_title != '' ";- J8 ~6 M5 {* I: z$ U6 d
  10.         $sql .= "AND post_password ='' ";
      b1 ~9 U9 U# V% U4 Y6 v
  11.         $sql .= "AND post_type = 'post' ";. Z, h& ~! W- {: K% O$ H3 W
  12.         $sql .= "ORDER BY RAND() LIMIT 0 , $posts_num ";
    ' G# O; N& v) }+ s
  13.         $randposts = $wpdb->get_results($sql);& o, b2 r" @5 V1 J
  14.         $output = '';
    9 _; `/ K. i) Y  I+ ?  y
  15.         foreach ($randposts as $randpost) {
    2 u6 @- {/ K, F2 g) p+ m/ L
  16.                 $post_title = stripslashes($randpost->post_title);) n& V& h  Q. Q2 d* x- O) p6 o* `
  17.                 $permalink = get_permalink($randpost->ID);& k9 ~4 }: C7 M' p" h  \  e
  18.                 $output .= $before.'<a href="'
    ) |. F( B, C; g2 \: V' m
  19.                         . $permalink . '"  rel="bookmark" title="';0 j/ V" _4 ]5 E, d& K
  20.                 $output .= $post_title . '">' . $post_title . '</a>';7 w5 G- t. d# j
  21.                 $output .= $after;
    0 _+ m4 G# {% d% s9 a0 p& f# ^; X
  22.         }
    9 V( `- w; ~7 Y& D
  23.         echo $output;
    2 P" K- {& m; b8 d8 t6 @" c8 G5 o
  24. }
    2 r. I, |4 d; ?3 ~$ S8 j: [& _
  25. 在需要显示的地方调用如下代码
    5 \/ B+ E5 E0 ]* q
  26. <div>) Q; Z- n5 R5 J" j5 g2 Q; p
  27.         <h3>随便找点看看!</h3>
    , [6 v- z$ W0 p$ N
  28.         <ul>6 {- f/ U7 s$ e
  29.                 <?php random_posts(); ?>% j9 c' ]0 C6 t. j2 h% m8 d
  30.         </ul>5 B- f, Y+ H9 [! ?1 g
  31. </div><!-- 随机文章 -->
复制代码
9 j/ x9 |7 I/ Y$ D2 M2 F

2 i5 ?$ e5 r( n: [/ t) B( i
* S8 f. @, ]9 H5 R6 f# a! |0 V

评分

参与人数 1广告币 +5 收起 理由
风儿 + 5

查看全部评分

相关帖子
wzdh1973.com     mywz999.com
回复

使用道具 举报

3

主题

11

广告币

52

积分

初级会员

Rank: 2

积分
52

社区QQ达人

发表于 2017-12-2 17:06:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

96

主题

1926

广告币

3499

积分

金牌会员

Rank: 6Rank: 6

积分
3499
发表于 2020-9-26 22:21:23 | 显示全部楼层
楼主应该给个demo或效果截图
. r* |' ^- S. Z/ x: D) T6 A7 V# N3 b( x- E! Y+ Y$ K2 {7 N5 [
谢谢!
已有1人评分           广告币           理由
     河小马         +10,000,000       太帅了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2025-9-13 19:39 , Processed in 0.053319 second(s), 20 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表