【问题标题】:Show 2 random li's on from ul - PHP从 ul 显示 2 个随机 li - PHP
【发布时间】:2012-08-02 08:35:08
【问题描述】:

希望有人能提供帮助。

我正在构建一个 wordpress 网站,作为设计的一部分,我想展示一些“功能面板”。

列表中总共有 4 个 li - 但我只想在每个页面上显示 2 个随机的。

我可以通过 CSS 通过显示/隐藏基于页面类的每个 li 来做到这一点 - 但是我想知道是否有更优雅的方式通过 PHP 来做同样的事情?

我的 HTML 在这里...我不知道从哪里开始使用 PHP,似乎我在谷歌搜索错误的关键字...

    <ul id="featurePanels">
  <li id="newBoatsPanel">
    <h3><a href="#">New Boats<br />
      <span>Text</span></a></h3>
  </li>
  <li id="brokeragePanel">
    <h3><a href="#">Brokerage<br />
      <span>Text</span></a></h3>
  </li>
  <li id="newsPanel">
    <h3><a href="#">News<br />
      <span>Text</span></a></h3>
  </li>
  <li id="partsPanel">
    <h3><a href="#">Parts<br />
      <span>Need text here</span></a></h3>
  </li>
</ul>

任何指针将不胜感激。

谢谢。

【问题讨论】:

  • 请定义优雅。我想说 CSS 在这里非常优雅。
  • 如果我的网站上有 20 个页面,我必须编写 20 条不同的规则来显示/隐藏某些面板,这是基于我指定在哪些页面上显示哪些面板 - 这实际上不是完全随机。如果 PHP 可以在几行代码中做同样的事情,那么它似乎是一个更优雅的解决方案——无论如何,在我看来。

标签: php wordpress random


【解决方案1】:
<?php

$listItems = array(
 '<li id="newBoatsPanel">your text here</li>',
 '<li id="brokeragePanel">more text here</li>',
 '<li id="newsPanel">text text text</li>',
 '<li id="partsPanel">Need text here</li>'
);

shuffle($listItems); // shuffles (randomizes the order of the elements)

// print the list
echo '<ul id="featurePanels">' . $listItems[0] . $listItems[1] . '</ul>';

?>

【讨论】:

  • 嗨 - 谢谢。这看起来像是我所追求的那种东西,但是在将代码添加到站点时,我收到以下错误“警告:shuffle() 期望参数 1 是数组,null given in”
  • 请务必将$listItems 作为shuffle() 中的参数传递。并且$listItems 数组必须存在。
【解决方案2】:

你可以使用 preg_match_all('/\&lt;li.*?\&gt;.*?\&lt;/li\&gt;/i',$html_string,$li_list)

在 $li_list 中,您将拥有一个 li 数组,现在您可以随机播放、随机播放、拼接、切片或其他任何内容...

最后使用implode 获取HTML。

【讨论】:

    猜你喜欢
    • 2011-03-25
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 2015-07-10
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多