找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5G广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具
ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)IPCola原生住宅IP⚡️$1.8/条双ISPFB资源,账单户,分享户,国内一手TK加白户/二解户/FB海外户/GG老户
海外CL企业户源头最大欧洲Nutra网盟BA找量 FB高权重耐操个号⚡️稳定过审GG,FB,TK, 欧美源头, 欢迎合作❤️
FB企业户海外户,授信户,TK加白户联盟收款/海外资金下发/服贸结汇✔Taboola海外户9千万住宅IP-低至$0.3/gb✅静态$4/ip
广告位出租虚拟卡返佣1%,国内持牌机构  
查看: 7900|回复: 2

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

[复制链接]

124

主题

221

广告币

313

积分

初级会员

888888888888888

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

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

  1. <li class="widget widget_numberposts">8 P1 J2 |# i6 f  W' S( w( G
  2. <h3>随遍看看吧</h3>
    5 t. z; c: S- f2 c/ o
  3. <ul>
    , f' \5 ~, y$ Z: z( f6 B
  4. <?php $rand_posts = get_posts('numberposts=8&orderby=rand');  i  r, k' V2 f2 W  W0 b
  5. foreach( $rand_posts as $post ) : ?>: s0 [4 m7 S( w! [0 h5 G
  6. <li>
    & ^7 f" ], ^5 r. a8 h; t$ P
  7. <a target="_blank" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    3 X+ B  C. Y" X0 }" s4 N7 d; `5 L
  8. </li>1 z1 r' q" _  R# m" }
  9. <?php endforeach; ?>% h, _  Z* Y# @
  10. </ul>
复制代码

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


' ?5 y" i3 x% U+ C$ x( a8 u2 [方法二:在随机文章中显示标题和文章摘要在需要显示的地方直接调用如下代码- p+ G7 j( N7 u* ?4 {8 r
  1. <?php0 U; v' r; M( {. G
  2. query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 1));+ X! A% T# `' Z; f0 Q1 \+ i9 O
  3. if (have_posts()) :; M) {! j: Z, c" Q, q6 s. N8 N. G# y, ?
  4. while (have_posts()) : the_post();: a; S+ j/ i  \  l, J- M8 L( c
  5. the_title(); //这行去掉就不显示标题& }& _, [$ ?# [3 k
  6. the_excerpt(); //去掉这个就不显示摘要了( Y1 S) E9 ]! e+ h) [
  7. endwhile;9 U& H* L$ P$ A- G  Q2 [. O
  8. endif; ?>
复制代码
方法三:用query_posts生成随机文章列表

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

  1. <?php( e! D- R  y) w# U% L8 h
  2. query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 2));
    , S$ O& b8 l  w
  3. if (have_posts()) :
    0 l" ^5 ~% Y7 B% o, q
  4. while (have_posts()) : the_post();?>% q- S6 ~+ s! H; @# [
  5. <a href=”<?php the_permalink() ?>”
    , |/ \) g  d5 p+ J
  6.         rel=”bookmark”
    5 D2 ]( ^, w$ l
  7.         title=<?php the_title(); ?>”><?php the_title(); ?></a> & d9 Z2 P9 w3 g1 N
  8.         <?php comments_number(”, ‘(1)’, ‘(%)’); ?>
    * W6 b! f3 {, i6 s) q
  9. <?php endwhile;endif; ?>
复制代码
方法四:在function.php中加入如下代码

在function.php中加入如下代码

  1. /**
    - K; t! w4 ]  ^6 a& |' J
  2. * 随机文章
    2 g, s5 v3 d; h; n2 \, k
  3. */. x: J" ^( K. Q, q( @5 q
  4. function random_posts($posts_num=5,$before='<li>',$after='</li>'){
    # I; V  F5 v/ m
  5.         global $wpdb;
      i8 S* D) x" Z
  6.         $sql = "SELECT ID, post_title,guid6 Z* X' X8 @8 a9 ?5 i* u4 g
  7.                         FROM $wpdb->posts' O3 T5 v$ @. G3 S1 X/ c  I
  8.                         WHERE post_status = 'publish' ";
    & p, V: @+ _4 C' R& e/ Q  ?, X
  9.         $sql .= "AND post_title != '' ";* T& R9 M* I% T, q: J$ S
  10.         $sql .= "AND post_password ='' ";
    # s4 F; \5 x5 _5 r: n: f7 o
  11.         $sql .= "AND post_type = 'post' ";
    5 P9 a# s* H! }4 t- |: U# i
  12.         $sql .= "ORDER BY RAND() LIMIT 0 , $posts_num ";# k3 S; C) Q3 G& \
  13.         $randposts = $wpdb->get_results($sql);
    ; x  K5 J- o' J0 Q7 T) P; n9 _
  14.         $output = '';
    & P+ R- k& Y5 v
  15.         foreach ($randposts as $randpost) {9 [& {9 S/ a- b! l3 k
  16.                 $post_title = stripslashes($randpost->post_title);
    3 }3 v7 D+ _' Y: p0 f( o
  17.                 $permalink = get_permalink($randpost->ID);
    * z: G6 r( o: w4 |
  18.                 $output .= $before.'<a href="'7 b- W* r& L' v- Y# r5 N/ [
  19.                         . $permalink . '"  rel="bookmark" title="';
    7 |, @! U; ]1 {* z/ W
  20.                 $output .= $post_title . '">' . $post_title . '</a>';  s7 c* k# Q% e' J
  21.                 $output .= $after;
    2 s1 l3 J* V1 T6 f0 V
  22.         }
    6 K- o# y2 {# g1 U" g$ O
  23.         echo $output;
    ( [$ N" q! o# ^, A; a" g
  24. }0 D1 A- C- W+ e, s% w6 T" r8 b* g9 b
  25. 在需要显示的地方调用如下代码
    * E  Q4 B6 g5 ]1 {6 D. r6 N; k
  26. <div>
    ( y$ t: a( G* W1 }1 W7 d) m
  27.         <h3>随便找点看看!</h3>
    " ?( z' _/ K! g8 G) {; ^
  28.         <ul>9 y- Z; {4 ^( [% }1 `
  29.                 <?php random_posts(); ?>  O0 ~( I* h1 M0 u; l
  30.         </ul>
    2 D3 [; @0 S  Y. Z' U
  31. </div><!-- 随机文章 -->
复制代码
, M8 w# [, W- [( A( x( P6 |
/ j+ [  r* U  p' f" _* r: Z
2 n% o9 y; K  r! y

评分

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

查看全部评分

相关帖子
vpsjq.com   
surveypayoutwatch.com
回复

使用道具 举报

3

主题

11

广告币

52

积分

初级会员

积分
52

社区QQ达人

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

使用道具 举报

101

主题

2363

广告币

4064

积分

金牌会员

积分
4064
发表于 2020-9-26 22:21:23 | 显示全部楼层
楼主应该给个demo或效果截图
' g: ?; B# Y" Z$ s) @8 W7 t
/ j8 m: e8 {! M& }  S谢谢!
已有1人评分           广告币           理由
     河小马         +10,000,000       太帅了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-13 06:58 , Processed in 0.083764 second(s), 28 queries , Gzip On.

Copyright © 2001-2026, AdvertCN

Proudly Operating in Hong Kong.

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