はじめまして!
以前、こちらのサイトで質問させていただいてから
実装したいプログラムを完成させることができました。
Wordpress記事数をユーザー登録を行った日から 経過した日数に応じて可変させたい
取り組んでるうちに1つ問題が発生したため、質問させてください。
先日、Wordpress記事を古い順番で、
ユーザー登録を行った日から経過した日数に応じて表示させるというプログラムを作成したのですが、
プログラムは機能するものの、記事のレイアウトが崩れてしまいました。
以下がトップページの元のソースと今のソースの一部になります。
(こちらのソース以外、追加変更はしておりません)
■元のソース
lang
1<div id="recent_post_content" class="front-loop"> 2 3<h2><i class="fa fa-clock-o"></i> 最近の投稿</h2> 4<div class="wrap"> 5<div class="front-loop-cont"> 6<?php 7$i = 1; 8wp_reset_query(); 9 10$args=array( 11'meta_query'=> 12array( 13array( 'key'=>'bzb_show_toppage_flag', 14'compare' => 'NOT EXISTS' 15), 16array( 'key'=>'bzb_show_toppage_flag', 17'value'=>'none', 18'compare'=>'!=' 19), 20'relation'=>'OR' 21), 22'showposts'=>5, 23'order'=>'DESC' 24); 25 26query_posts($args); 27 28if ( have_posts() ) : 29while ( have_posts() ) : the_post(); 30 31$cf = get_post_meta($post->ID); 32$recent_class = 'popular_post_box recent-'.$i; 33?>
■変更後のソース
lang
1<div id="popular_post_content" class="front-loop"> 2 3<h2><i class="fa fa-clock-o"></i> 最近の投稿</h2> 4<div class="wrap"> 5<div class="front-loop-cont"> 6<?php 7$i = 1; 8wp_reset_query(); 9 10$current_user = wp_get_current_user(); 11 12$time1 = strtotime($current_user->user_registered); 13 14$time2 = strtotime(date('Y/m/d H:i:s')); 15 16$seconddiff = abs($time2 - $time1); 17 18$diff = $seconddiff / (60*60*24); 19 20$daydiff = floor($diff) *2; 21 22 23//query_posts('order=ASC&cat=11&posts_per_page.=$daydiff'); 24 25 26$args=array( 27'meta_query'=> 28array( 29array( 'key'=>'bzb_show_toppage_flag', 30'compare' => 'NOT EXISTS' 31), 32array( 'key'=>'bzb_show_toppage_flag', 33'value'=>'none', 34'compare'=>'!=' 35), 36'relation'=>'OR' 37), 38'showposts'=>$daydiff, 39'order'=>'ASC' 40); 41 42query_posts($args); 43 44if ( have_posts() ) : 45while ( have_posts() ) : the_post(); 46 47 48 49$cf = get_post_meta($post->ID); 50$recent_class = 'popular_post_box recent-'.$i; 51?>
トップページのレイアウトが崩れてしまう原因を調べるために元のソースと今のソースを比べてみました。
比べてみて分かったのは、以下の2箇所に違いがあるということでした。
■違い1
ソースが書き加えられている。
lang
1$current_user = wp_get_current_user(); 2$time1 = strtotime($current_user->user_registered); 3$time2 = strtotime(date('Y/m/d H:i:s')); 4$seconddiff = abs($time2 - $time1); 5$diff = $seconddiff / (60*60*24); 6$daydiff = floor($diff) *2; 7//query_posts('order=ASC&cat=11&posts_per_page.=$daydiff');
■違い2
ソースが書き換えられている。
'showposts'=>5, 'showposts'=>$daydiff,
'order'=>'DESC'
↓変更後
'showposts'=>$daydiff,
'order'=>'DESC' 'order'=>'ASC'
比べる際にこちらのサイトがとても便利でした。
何度か試してみたのですが、原因が分からずに行き詰まっております。
度々ですが、ご教授して頂ければ幸いです。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー