質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

1842閲覧

Wordpressの自作テンプレートで人気記事ランキングのリストがどうしても崩れてしまう

yamaoka

総合スコア27

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2017/06/13 08:01

編集2017/06/15 06:43

現在完全自作のテンプレートを作っています
記事のアクセスランキングをサイドバーに表示したいと思い、htmlで作ったランキングをphp化して自動で人気記事を表示できるようにしようと思っています

ですが現在このようにデザインが崩れてしまっています
イメージ説明

htmlのときはきれいにcssが効いていたのですが、新たにcssを書き直さないといけないものなのでしょうか?
それとも下記のコードを書き換えればきれいなリストになるでしょうか?

やり方を調べてもプラグインを使ってランキングを作っている方が多くよくわかりませんでした。
今回プラグインを使わずに行いたいのでどなたかご教授いただけないでしょうか?よろしくお願いいたします

サイドバーのコード(画像の大きさを小さくしても画像の位置は変わりませんでした)

<div id="saide-ranking"> <ul> <?php //記事のPV情報を取得 setPostViews(get_the_ID()); //ループ開始 query_posts('meta_key=post_views_count&orderby=meta_value_num&posts_per_page=5&order=DESC');while(have_posts()) : the_post();?> <li class="saide-ranking-li"><a href="<?php the_permalink(); ?>"> <div class="saide-ranking-img"><?php the_post_thumbnail(array(90, 80)); ?></div> <p class="date"><?php the_time("Y/n/j"); ?></p> <p class="ranking-title"> <?php the_title(); ?></p> </a> </li> <?php endwhile; ?> </ul> </div>

PostViewsを使ってアクセスランキングを調べるコード(functions.php)

function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 View"; } return $count.'Views'; } function setPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count =0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } } remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0)

html ファイルのリストコード

<div id="saide-ranking"> <ul> <li class="saide-ranking-li"><a href="#"> <img src="image/cube.jpg" alt="drone" class="saide-ranking-img" /> <p class="date">2017.05.05</p> <p class="ranking-title"> リストタイトル</p> </a> </li> <li class="saide-ranking-li"><a href="#"> <img src="image/cube.jpg" alt="drone" class="saide-ranking-img" /> <p class="date">2017.05.05</p> <p class="ranking-title">リストタイトル</p> </a> </li> <li class="saide-ranking-li"><a href="#"> <img src="image/cube.jpg" alt="drone" class="saide-ranking-img" /> <p class="date">2017.05.05</p> <p class="ranking-title"> リストタイトル</p> </a> </li> <li class="saide-ranking-li"><a href="#"> <img src="image/cube.jpg" alt="drone" class="saide-ranking-img" /> <p class="date">2017.05.05</p> <p class="ranking-title"> リストタイトル</p> </a> </li> <li class="saide-ranking-bottom"><a href="#"> <img src="image/cube.jpg" alt="drone" class="saide-ranking-img" /> <p class="date">2017.05.05</p> <p class="ranking-title">リストタイトル</p> </a> </li> </ul> </div>

htmlファイルのcss```ここに言語を入力
#saide-ranking ul{
width: 235px;
height: auto;
list-style:none;
background-color: white;
margin: 10px 47px 10px 49px;
}
#saide-ranking li{
display: inline;
padding: 0;
margin: 0;
}
.saide-ranking-li p {
color: #4A4A4A;
}
.date{
font-weight: 600;
font-size: 12px;
}
.ranking-title{
font-weight: bold;
font-size: 13px;
color: #4A4A4A;
}
.saide-ranking-img{
width: 90px;
height: 80px;
padding-right: 8px;
float: left;
}
.saide-ranking-bottom a{
display: block;
padding: 10px 10px 10px 10px;
border: 1px solid #E6E6E6;
border-bottom-right-radius: 12px;
}
.saide-ranking-li a{
display: block;
padding: 10px 10px 10px 10px;
border-right: 1px solid #E6E6E6;
border-left: 1px solid #E6E6E6;
border-top: 1px solid #E6E6E6;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuusaamarki

2017/06/13 10:32

すみません、少し確認させていただきたいのですがデベロッパーツールで確認した際にhtmlの時効いていたcssは適用されていますでしょうか。
yamaoka

2017/06/15 04:40

コメントありがとうございます。確認いたしましたところhtmlのとき効いていたcssが適応されていませんでした
guest

回答2

0

ベストアンサー

HTMLの時とPHPにした時にタグの構造が変わっているようですね。

html

1<li class="saide-ranking-li"> 2 <a href="#"> 3 <img src="image/cube.jpg" alt="drone" class="saide-ranking-img" /> <!-- ここ --> 4 <p class="date">2017.05.05</p> 5 <p class="ranking-title"> リストタイトル</p> 6 </a> 7</li>

html

1<li class="saide-ranking-li"> 2 <a href="<?php the_permalink(); ?>"> 3 <div class="saide-ranking-img"><?php the_post_thumbnail(array(90, 80)); ?></div> <!-- ここ --> 4 <p class="date"><?php the_time("Y/n/j"); ?></p> 5 <p class="ranking-title"> <?php the_title(); ?></p> 6 </a> 7</li>

HTMLの時はimgsaide-ranking-imgがついてますが、PHPにしたときにはそれを囲ったdivsaide-ranking-imgになってます。
div付けた方で対応していきたいのですね?

※先ほどこの差異でズレが表示すると書きましたが検証が足りませんでした。具体的な解決方法はまだ回答していません。


追記
ソースを少し整理してみました。
ご確認ください。

css

1#saide-ranking ul{ 2 width: 235px; 3 height: auto; 4 list-style:none; 5 background-color: white; 6 margin: 10px 47px 10px 49px; 7} 8 9#saide-ranking li{ 10 padding: 0; 11 margin: 0; 12} 13#saide-ranking li p { 14 color: #4A4A4A; 15} 16.date{ 17 font-weight: 600; 18 font-size: 12px; 19} 20 21.ranking-title{ 22 font-weight: bold; 23 font-size: 13px; 24 color: #4A4A4A; 25} 26 27#saide-ranking li div{ 28 float:left; 29} 30 31#saide-ranking li img{ 32 width: 90px; 33 height: 80px; 34 padding-right: 8px; 35} 36 37#saide-ranking li:last-child a{ 38 display: block; 39 padding: 10px 10px 10px 10px; 40 border: 1px solid #E6E6E6; 41 border-bottom-right-radius: 12px; 42} 43 44#saide-ranking li a{ 45 display: block; 46 padding: 10px 10px 10px 10px; 47 border-right: 1px solid #E6E6E6; 48 border-left: 1px solid #E6E6E6; 49 border-top: 1px solid #E6E6E6; 50}

html

1<div id="saide-ranking"> 2 <ul> 3 <?php 4 //記事のPV情報を取得 5 setPostViews(get_the_ID()); 6 //ループ開始 7 query_posts('meta_key=post_views_count&orderby=meta_value_num&posts_per_page=5&order=DESC');while(have_posts()) : the_post();?> 8 9 <li> 10 <a href="<?php the_permalink(); ?>"> 11 <div><?php the_post_thumbnail(array(90, 80)); ?></div> 12 <p class="date"><?php the_time("Y/n/j"); ?></p> 13 <p class="ranking-title"> <?php the_title(); ?></p> 14 </a> 15 </li> 16 <?php endwhile; ?> 17 </ul> 18</div>

query_postsの使用についてはこちらをご一読いただくといいと思います。

投稿2017/06/15 06:56

編集2017/06/15 07:43
dit.

総合スコア3235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamaoka

2017/06/15 07:04

おぉ、ありがとうございます。自分ひとりじゃ気がつくことができませんでした。
dit.

2017/06/15 07:14

先ほど回答を編集しましたが、divにsaide-ranking-imgがついていても左に画像、右に文字のレイアウトはされますね。 CSSがうまく読み込めていない、他の記述が邪魔をしている等も疑った方がいいかもしれません。
yamaoka

2017/06/15 07:35

もう一度phpファイル化前と後見比べて探してみます
yamaoka

2017/06/15 08:18

お手数おかけしました。ありがとうございます
guest

0

HTMLべた書きをしていたときの状態を正とお望みならば正しく表示されていたときのHTMLも載せていただけますか?

投稿2017/06/15 06:30

skmtkytr

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問