【问题标题】:Set up a number of categories to display on a page设置多个类别以显示在页面上
【发布时间】:2022-02-09 05:33:38
【问题描述】:

我基本上是在寻找一种在我的模板页面上只显示 3 个类别的方法。 我使用 foreach 循环 来显示我页面上的所有类别

$categories = get_categories();
foreach($categories as $category) {
   echo '<div class="col-md-4"><a href="' . 
    get_category_link($category->term_id) . '">' . $category->name 
  . '</a></div>';
}?>

此代码显示我页面上的所有类别,但我只想每页显示 3 个并最终添加分页

【问题讨论】:

  • 为什么不只返回 get_categories(); 中的 3 个条目而不是全部?还是有你不能的理由?如果你不能,那么你可以做一个I % 3 并在条件等于 0 时输出
  • 我不认为如果我这样做,我将能够为类别的页面添加分页
  • 我只是说按照您指定的eventually add paginations 这样做。如果您需要立即添加它们,那么您仍然可以这样做。只需向函数添加一个参数集以查询“页面”或将数据作为一个整体作为多对象返回,如果这有意义的话,您应该仍然可以使用我提供的解决方案来组织该函数来过滤结果需要
  • 请你写一个关于如何的小代码!我应该实施还是那样做?请!! @MysticSeagull
  • 对于哪个@Adrien Duval,获得 3 或进行分页?因为如果进行分页它不会很小而且我不知道你的数据集。

标签: php wordpress pagination categories


【解决方案1】:
$page=$_GET['page_number']; 

$categories = get_categories();

$data=array_chunk($categories ,3);

$paginations=count($data); // use loop for paginations in html page

foreach($data[$page] as $category) {
   echo '<div class="col-md-4"><a href="' . 
    get_category_link($category->term_id) . '">' . $category->name 
  . '</a></div>';
}

【讨论】:

    【解决方案2】:

    根据我上面的 cmets。我可以给你的代码示例如下

    for($i = 0; $i <= count($categories); $i++) {
        /* 
        Pagination purposes this is how you can format data to an object 
        base.
        */
        if($i % 3 = 0) {
           // add to an array
        }
    }
    
    for ($i = 0; $i <= 3; $i++) {
    // echo categories HTML but $categories[$i] instead
    }
    

    虽然让大家知道这不会像你想象的那样完全工作等等......等等......我无法深入解释模运算符,因为如果没有你尝试学习它,我想不出一个简单的方法,所以你可以很好理解。

    这样你只能得到 3 个

    【讨论】:

    • 谢谢兄弟,但是有没有更简单的方法来做这件事我仍然是一个更新鲜的尝试构建我的第一个 wordpress 主题,这对我来说有点复杂
    • 没有我能立即想到的 PHP 术语。如果您需要前 3 个,那么除非您对值进行硬编码,否则就是这样。除非您有相同的数据/需要这样做,否则我不建议这样做
    • 请帮我做最后的思考,请用我的代码实现你的代码!
    • 我基本上做到了,我什至给了你关于你必须改变什么的评论。第二个 for 循环是您需要将循环更改为非常好。
    【解决方案3】:
    $startCategory = 0;
    for($i = $startCategory; $i <= count($categories); $i++) {
     echo '<div class="col-md-4"><a href="' .get_category_link($categories[$i]['term_id']) . '">' . $categories[$i]['name']. '</a></div>';
     $startCategory++;
     if($startCategory > (count($categories) -1)){
      break;
     }
    //pass $startCategory to next page , next page
    $startCategory  = $_POST["startCategory"]; // by using post method
    
    $startCategory  = $_GET["startCategory"]; // by using get method
    for($i = $startCategory; $i <= count($categories); $i++) {
    echo '<div class="col-md-4"><a href="' . 
        get_category_link($categories[$i]['term_id']) . '">' . $categories[$i]['name']
      . '</a></div>';
    $startCategory++;
     if($startCategory > (count($categories) -1)){
      break;
     }
    }
    

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2012-03-08
    • 2017-05-13
    • 2015-05-07
    相关资源
    最近更新 更多