AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G需要代理IP?⚡️Proxysites.ai⚡️指纹浏览器,就用AdsPower
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
DuoPlus专注打造跨境电商云手机E.PN 虚拟卡BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具
ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户9Proxy ⚡️ $0.04/IP, 无限带宽 IPCola原生住宅IP⚡️$2.1/条双ISP
Google、Bing官方总代  联盟流量开户fb耐用号0.01一个fb账号官方合作商FB资源,账单户,分享户,国内一手
FB企业户BM户账单户源头广告位出租  
查看: 7058|回复: 2

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

[复制链接]

121

主题

188

广告币

278

积分

初级会员

888888888888888

Rank: 2

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

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

  1. <li class="widget widget_numberposts">2 Z# `9 l3 J9 I9 i8 F
  2. <h3>随遍看看吧</h3>9 [  O8 Y, I! @4 p# M/ G6 @2 P
  3. <ul>% B( `) ~* [3 z2 l( M8 |1 ?
  4. <?php $rand_posts = get_posts('numberposts=8&orderby=rand');% ^  t) g6 A+ ]9 d' `
  5. foreach( $rand_posts as $post ) : ?>
    ) z; u8 P1 v2 f& P+ n
  6. <li>
    ' w2 ^! F6 N, V0 _1 t* m: j
  7. <a target="_blank" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>, ]3 a" W! v4 r/ g8 x
  8. </li>
    5 v7 H0 j2 H* Z1 M1 W
  9. <?php endforeach; ?>0 @, g9 P2 ]6 g4 L. f; o
  10. </ul>
复制代码

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


5 B! N; ?% g2 J方法二:在随机文章中显示标题和文章摘要在需要显示的地方直接调用如下代码/ r+ d6 s: }8 Y- Z
  1. <?php2 ^* ]: Z  R; c+ J; m
  2. query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 1));1 W5 o6 S5 W# v2 b; [
  3. if (have_posts()) :
    - j3 o* V: `; R- m. E
  4. while (have_posts()) : the_post();
    7 B( m0 y/ n. Z$ o9 `1 J3 H5 U9 N# o/ ?
  5. the_title(); //这行去掉就不显示标题. e. e) V9 w% \6 }4 o4 z& G
  6. the_excerpt(); //去掉这个就不显示摘要了
    0 t' O* `+ F# M( `
  7. endwhile;
    6 j; B/ H" N% s8 x  d
  8. endif; ?>
复制代码
方法三:用query_posts生成随机文章列表

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

  1. <?php
    $ V* }/ ^; P) U2 E% j
  2. query_posts(array(‘orderby’ => ‘rand’, ‘showposts’ => 2));
    2 _4 B7 o- ^6 {$ d7 Q& D' e5 U
  3. if (have_posts()) :
    ! t& ?" ~# }- c9 w
  4. while (have_posts()) : the_post();?>* ]4 _# T9 s' W
  5. <a href=”<?php the_permalink() ?>”* v; ]3 V6 g8 q' Y+ l
  6.         rel=”bookmark”# W4 z  R% P7 H9 `# L: H* d" v0 u
  7.         title=<?php the_title(); ?>”><?php the_title(); ?></a> * B' ?/ d, ^9 _4 z7 E
  8.         <?php comments_number(”, ‘(1)’, ‘(%)’); ?>
    , O5 P7 H9 F! ~4 _" N
  9. <?php endwhile;endif; ?>
复制代码
方法四:在function.php中加入如下代码

在function.php中加入如下代码

  1. /**
    : p: j9 p4 Y1 q) h' d, X% @4 K! `
  2. * 随机文章( S2 u( Y7 I8 T0 F  q3 ^/ v
  3. */9 f) h/ M! Y4 z- p
  4. function random_posts($posts_num=5,$before='<li>',$after='</li>'){8 Q- H5 z( H2 r' @# S
  5.         global $wpdb;
    & W# I2 @1 I# r
  6.         $sql = "SELECT ID, post_title,guid
    * _/ V  M# h1 c7 h& z! g0 h
  7.                         FROM $wpdb->posts8 d2 Q7 ]; f6 }3 s
  8.                         WHERE post_status = 'publish' ";1 }2 V: L7 r% j' I6 g" H, O
  9.         $sql .= "AND post_title != '' ";. s0 G5 O2 A  X
  10.         $sql .= "AND post_password ='' ";
    , y' S! Q5 q+ X  o4 ^$ J
  11.         $sql .= "AND post_type = 'post' ";5 e# @) B4 T( N: e  j8 `- u
  12.         $sql .= "ORDER BY RAND() LIMIT 0 , $posts_num ";
    : x: |3 C8 ^' c. p5 k7 m
  13.         $randposts = $wpdb->get_results($sql);
    , z: {3 H: J* F2 D# {
  14.         $output = '';9 T1 o1 E! |' b5 I( M. {$ C
  15.         foreach ($randposts as $randpost) {
    0 ^, w6 R/ K! {" A+ L0 b  e
  16.                 $post_title = stripslashes($randpost->post_title);
    % I  x8 a: d4 n; \4 Q4 z( q  I2 E
  17.                 $permalink = get_permalink($randpost->ID);( y8 Q$ t- y: q4 U* f, i
  18.                 $output .= $before.'<a href="'
    0 [5 ]1 d: P7 y! F9 B
  19.                         . $permalink . '"  rel="bookmark" title="';1 G, T1 \5 R5 M9 X0 M& u# r& ?$ ^  |
  20.                 $output .= $post_title . '">' . $post_title . '</a>';9 j) Q7 O4 J; ]; s# n/ A. B
  21.                 $output .= $after;7 Y7 s! g  b# p+ T' s/ z
  22.         }
    ! \( B: _% k( Z) t
  23.         echo $output;# b* i+ B( R; J9 k
  24. }
    4 q$ k9 `7 e7 o1 I: K
  25. 在需要显示的地方调用如下代码
    6 H, F& b! i1 @1 L( f
  26. <div>1 p7 V3 [0 }/ d
  27.         <h3>随便找点看看!</h3>3 @( D; \6 U1 T# z. r
  28.         <ul>9 x8 z/ W. ]' T
  29.                 <?php random_posts(); ?>
    + j/ Y- @. X" G6 @, L8 z; j% p% }7 {3 o
  30.         </ul>
    & ~9 a3 S7 o; A& t8 l0 n
  31. </div><!-- 随机文章 -->
复制代码

, `& b$ m5 z5 W, b6 n2 a2 P- {3 ?% `1 e  X
7 P$ P% {7 U% H2 _1 B: \

评分

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

查看全部评分

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

使用道具 举报

3

主题

11

广告币

52

积分

初级会员

Rank: 2

积分
52

社区QQ达人

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

使用道具 举报

87

主题

1747

广告币

3261

积分

金牌会员

Rank: 6Rank: 6

积分
3261
发表于 2020-9-26 22:21:23 | 显示全部楼层
楼主应该给个demo或效果截图
, u; S% U7 Y3 t$ \1 T8 d2 k; ]  f* F
谢谢!
已有1人评分           广告币           理由
     河小马         +10,000,000       太帅了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-22 16:55 , Processed in 0.053047 second(s), 20 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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