1

これは私にとってここでのポスト 2 です。wordpressのコーディングもかなり苦手ですが、勉強中です!

ポートフォリオ テンプレートを使用して、教育コンテンツのページを整理しています。各ページには、平日 (月~金) に 1 つずつ、計 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 に答える