1

这是给我的第二个帖子,所以如果我遗漏了什么,我深表歉意!我在 wordpress 编码方面也很弱,但我正在学习!

我正在使用投资组合模板来组织教育内容页面。每个页面有 5 个帖子,每个工作日(周一至周五)一个帖子。我每周都会有不同的小组访问不同的页面,但大多数页面都是“旧的”。因此,现在访问它们时,您会同时看到所有 5 天。

我希望他们只看到以前和今天的帖子。因此,在周一访问时,您只能看到周一的帖子,即使周一至周五已发布。周三访问您会看到周一至周三。

所有的页面都是一样的,永远只有 5 个帖子。这种方法没有太大的灵活性,但没关系。我可能会包含一个元复选框来“启用/禁用”此功能,但不需要使用那么多。

这是当前 template-portfolio.php 的链接: https ://gist.github.com/4671326

这是我试图修改的那个: https ://gist.github.com/4661867

这是相关的代码:

$days = array(
              'monday' => 1,
              'tuesday' => 2,
              'wednesday' => 3,
              'thursday' => 4,
              'friday' => 5,
              );

$args = array(
              'post_type' => 'portfolio',
              'orderby' => 'menu_order',
              'order' => 'ASC',
              'meta_value' => esc_attr( get_post_meta( $post->ID, 'portsort', true ) ),
              'posts_per_page' => $days[date( 'l', current_time('timestamp') )],
              );

我的添加不起作用。这是我试图放在那里的逻辑:

根据当天的日期显示#number# 个帖子。因此,如果日期返回星期四,则只显示 4 个帖子。

对我来说,这似乎很容易做到......但由于某种原因它不能正常工作。

所以......我的问题:

  1. 这是使其顺利工作的适当编码逻辑吗?
  2. 我在代码本身中做错了什么?

谢谢您的帮助!

4

1 回答 1

1

较旧的问题,但可能只是区分大小写的问题:

$days = array(
          'monday' => 1,
          'tuesday' => 2,
          'wednesday' => 3,
          'thursday' => 4,
          'friday' => 5,
          );

$current_day = strtolower( date( 'l', current_time('timestamp') ) );

$args = array(
          'post_type' => 'portfolio',
          'orderby' => 'menu_order',
          'order' => 'ASC',
          'meta_value' => esc_attr( get_post_meta( $post->ID, 'portsort', true ) ),
          'posts_per_page' => $days[$current_day],
          );
于 2014-07-23T05:41:07.867 回答