【WordPressカスタマイズまとめ!】Simplicityとマテリアルを見やすく、個性的にする13の方法

こんにちは。ちゃぼP(@chabo0429)です。

WordPressのカスタマイズが一段落したので、これまでやったカスタマイズをまとめてみたいと思います。

それぞれの効果も人によっておそらく異なりますし、このままガサっと全部コピーしてしまうと、風の羅針盤のコピーサイトが出来てしまいますので、あくまで機能や目的、サイト全体のデザインバランスをよく検討したうえで、ご利用くださいね!

①Amazonリンク

【WordPress】Amazonリンクのおススメベスト3~TPOに合わせて最適なスタイルを!

アフィリエイトの定番、「Amazonアソシエイツ」。私のようにガジェット系のレビューをする人間にとって、大事なアマゾンへのリンクボックスですが、見た目がイマイチだと魅力も半減。ここはひとつ、魅力的な文章の最後に、ステキなリンクでAmazonへスマートに誘導しましょう!

ということで、goriさんのデザインをはじめ、いくつかのボックスを紹介しています。思えばこの記事から部長との縁が始まった記念すべき記事ですね。

②この記事が気に入ったら「いいね」しよう!ボックス

【WordPress】「この記事が気に入ったら いいね!しよう」を投稿ページに設置する方法

これはままはっくさんの元ネタの記事ですが、マテリアルだと「いいね」をしようとすると、サムネイルが切れてしまうという問題を抱えていたため、少しカスタマイズを加えました。

Simplicityを採用している部長のサイトでも使われています。見た目もイケてますね!

③新着記事には「New!」バッジを表示

【WordPress】WordPress用テーマ「マテリアル」新着記事に「New!」バッジを導入してみたよ

新しい記事は目立たせたい!

ブログ記事は通常、新しい記事から順番に表示されますが、公開したばかりの記事はひと目で「新しい記事」と分かってもらえるとアクセスアップにつながる可能性が高くなります。

ここでは公開後3日間以内の記事に、赤い「New!」バッジを表示させる方法を記載しています。新しい記事を目立たせたい方は是非どうぞ!

④ページ全文の「読むのにかかる時間」を表示

http://www.omoide-soko.jp/apps/wordpress/wordpress/709

本文の長い記事は、忙しい合間に読みにきてくれた人には全部読んでもらえない可能性が高くなります。そんな記事は「Pocket」にクリップしてもらって、あとで読んでもらえるようにするのも親切な設計。

ここではタイトル部分に全文を読む所要時間を「約○分」という形で表示しています。リンクボックスやコードは含まずに計算するので、純粋に「本文」のみの所要時間を表示してくれるので、記事の長さをパッと把握するのに便利ですよ!

⑤「リファラ」を伝えることができる「Celtispack」ブログカード

【WordPress】Celtispackで直接リンク形式のブログカードを作ってリファラを伝えよう

これは主に「マテリアル」に使う感じですが、プラグイン「Celtispack」を使うと、リファラ情報を相手に通知することができます。

「リファラ」とは、どこからサイトに飛んできたのかを示す情報で、例えばこの風の羅針盤に貼られている部長ナビのページへのリンクをクリックすると、部長のGoogleAnalyticsに「風の羅針盤からリンクで飛んできた人がいたよ!」と記録されるので、リンクしていることが相手に通知できるというものです。

Simplicityは、標準で「はてなブログカード」を装備しているので、このプラグインを入れなくても、ブログカードは表示できますが、リンク元が「hatenablog-parts.com」になります。そのため、リンク先のサイト側ではどのサイトからやってきたのかが分かりません。

この「Celticpack」は、リンク元がそのままリンク先に通知されるので、もしかしたらリンク先のブロガーさんに気づいてもらえるかも!?

⑥サムネイル付きページめくり機能

【WordPress】前の記事・次の記事へのサムネイル付きページめくり機能導入記

実は「マテリアル」にはページめくり機能が標準装備されておらず、何かいいものがないかと探していたところ、サムネイル付きのページめくり機能を紹介しているところがありました。

さっそく実装してみたところ、すごくいい感じ!

「直近のページを見たい!」という人には親切なページめくり機能。Simplicityには標準でページめくり機能は実装されていますが、ちょっと人と違った見た目がいい人におススメ。Simplicityでも多分実装できるはずです。試してないですが(笑)

⑦個別記事にシェアカウントを合計して表示

【WordPress】SNSシェア数を合計して表示する方法(マテリアル編)

これは元々部長のオーダーで作った機能ですね。既に部長のページでもお馴染みかと思います。風の羅針盤では個別記事の右上、それから記事下中央のシェアボタン上に表示しています。

プラグイン「SNS Count Cache」を使い、Twitter、Facebook、Pocket、Hatenaでのシェアをカウントしてくれますので、割と簡単に実装できます。これはイチオシです。

⑧トップページの最新記事を大きく目立たせる

【WordPress】トップページで最新記事を大きく表示する方法

これは風の羅針盤のトップページに表示している大きなアイキャッチと、下半分の半透明なタイトルエリアの実装方法です。この記事を書いた時と現在は若干デザインを変えていますので、元記事を修正しました。

テーマのデフォルトですと、ちょっとトップページが寂しかったので、最新記事を大きくした感じですね!

PCでは2記事、モバイルでは1記事のみを大きく表示するようにデザインしました。

⑨カテゴリ一覧固定ページを作成

【WordPress】マテリアルとSimplicityでカテゴリ一覧ページを作成する方法

カテゴリ一覧ページを固定ページとして作成して、それをグローバルメニューに表示しています。

記事がそれなりに多くなってくると、カテゴリをどうやって活かすかも重要になってきますので、簡単にわかりやすくカテゴリページにアクセスできるようにデザインしてみました。

⑩フォロワー数入りTwitter,Feedly,Push7フォローボックスを記事下に設置

【WordPress】記事下にTwitter,Feedly,Push7のフォローボタンを設置する方法

これも一応オリジナルです。プラグイン「SNS Count Cache」がTwitterやPush7に対応したため、それを利用してフォロワー数を表示できるようにしてみました。

フラットなタイル調にまとめてみましたが、色が強いので、サイトを選ぶかもしれませんね。

⑪関連記事をタイル風に並べて表示

【WordPress】関連記事をタイル風に並べて表示〜Simplicity,マテリアルカスタマイズ

これまで関連記事は一番左にアイキャッチ、右に記事タイトルが表示され、それが縦に並ぶ表示方法でした。

これをよりアイキャッチを目立たせ、スクエア風に見やすい関連記事にしてみました。これは部長のサイトでも実装済みです。

⑫カテゴリ別新着記事をヘッダー下に表示

【WordPress】ヘッダー下にカテゴリボックスを並べる方法(Simplicity,マテリアル)

以前は横に3枚でしたが、5枚に増やしました。ここは部長も同じデザインになっています。中の日付などの位置がちょっと違いますが、インパクト絶大です!

暖簾みたいですけどね(笑)

⑬個別記事下にアイキャッチ付きカテゴリリンクボックスを表示

【WordPress】アイキャッチ付きカテゴリリンクを個別記事に表示する(Simplicity,マテリアル)

これも部長のオーダーで実装済みです。アイキャッチがついたカテゴリリンクは、サイトの回遊率アップにとても効果的ですよ!

さいごに

これまで少しずつやってきたカスタマイズをまとめてみました。

改めて見ると、かなりいじってますね(笑)

でもかなり個性的&見やすい状態になっていると思います。

WordPressのデザインに悩んでいる方も多いと思いますが、参考にしていただけると幸いです!

【WordPress】トップページで最新記事を大きく表示する方法

この記事は2015年12月10日に公開した記事を、2016年7月7日に修正・追記しています。

こんにちは。ちゃぼP(@chabo0429)です。

このサイトではNobuoさん制作の「マテリアル」をテーマとして使用しています。

http://wp-material.net/

こういうパネル調のデザインのテーマって、意外とないんですよね。

記事が上から下だけでなく、横にも整列していて、アイキャッチも見やすいんでとても優れているデザインだと思っています。個人的にはもっとたくさんの人に使ってほしいなと思います。

ところで、そのマテリアルですが、いろいろと素人ながらにカスタマイズをしていますが、今回はトップページに表示されている新着記事を、もっと目立たせて更新が行われたことをよりアピールすることにチャレンジしてみました。

 

いろいろなブログサイトを見ていると、有料無料のいろいろなテーマを使っている方がいて、更にテーマを自作されている方もいたりします。

Webデザイナーのお仕事をされている方もおられるでしょうけど、自作できる人ってスゲーな・・と思うことしきりです。せいぜい、私なんてカスタマイズ位が関の山ですから、、

トップページの新着記事を目立たせる!

マテリアルのテーマカスタマイザー機能で、トップページに表示される記事数を設定することができます。

newpost1

この風の羅針盤では、最大の15件に設定しています。

 

そして、新着記事。公開したばかりの記事はできるだけ多くの人に見てもらいたいものです。それに、定期的に訪問してくれる人が、ぱっと見て更新されたかどうかを理解できるためのアイキャッチ的な役割も果たしてくれます。

マテリアルでは新着記事はすべて同じ大きさで表示されるので、これをもっと目立たせたいなと思っていました。

また、最近よく見かける透過レイヤーを用いた見出しをつけたいということもあったので、一緒に実装することを目標に作業にとりかかります。

モバイルとの条件分岐

PCでの表示では最新記事を大きくしますが、そのままモバイルでも同じ表示をしてしまったら、最新記事だけ横に長くなってしまって表示が崩れます。

なのでまず最初にモバイルでの表示はこれまで通りにするための、条件分岐を行います。

なお、phpファイルを直接修正する際は、必ずファイルのバックアップと、直接ファイルをコピーすることのできるFTPソフトを必ず用意した上で作業を実施してください。
修正時に誤ったコードを貼り付けたりすると、最悪管理画面からのアクセスもできなくなることがあるので要注意!!

また今回修正したファイル群はすべて子テーマにファイルをコピーした上で実施しています。

newpost2

今回修正するファイルは、

  • function.php
  • home.php
  • loop.php
  • style.css

の4つのファイルです。まずはfunction.phpへモバイル条件分岐の定義を追記します。ついでにトップページのページネーション機能を使ってページ送りをする場合に、今表示しているのが何ページ中の何ページ目なのかを取得出来るようにもしてしまいましょう。

function.php

//スマホ表示分岐
function is_mobile(){
    $useragents = array(
        'iPhone', // iPhone
        'iPod', // iPod touch
        'Android.*Mobile', // 1.5+ Android *** Only mobile
        'Windows.*Phone', // *** Windows Phone
        'dream', // Pre 1.5 Android
        'CUPCAKE', // 1.5+ Android
        'blackberry9500', // Storm
        'blackberry9530', // Storm
        'blackberry9520', // Storm v2
        'blackberry9550', // Storm v2
        'blackberry9800', // Torch
        'webOS', // Palm Pre Experimental
        'incognito', // Other iPhone browser
        'webmate' // Other iPhone browser
    );
    $pattern = '/'.implode('|', $useragents).'/i';
    return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}

//現在のページ数の取得
function show_page_number() {
    global $wp_query;
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $max_page = $wp_query->max_num_pages;
    echo $paged;  
}
//総ページ数の取得
function max_show_page_number() {
    global $wp_query;
    $max_page = $wp_query->max_num_pages;
    echo $max_page;  
}

上記をfunction.phpに貼り付けて、保存です。

トップページやページ送り後の見出しを表示するコード

これは2ページ目以降、ページ上部にページネーションを表示するためのコードです。

home.php

<?php get_header() ?>

<?php if ($paged >= 2): ?>
	<?php get_template_part("ad_728") ?>
<?php endif; ?>

<div class="box big-box">

<?php if ($paged >= 2): ?>
<?php
if (function_exists("pagination")) {
	pagination();
}
?>
<?php endif; ?>

<?php get_template_part("loop") ?>

</div><!-- .big-box -->

<?php if (is_mobile()) :?>
<?php get_template_part("ad_728") ?>
<?php else: ?>

<?php endif; ?>

<?php get_sidebar() ?>

<?php get_footer() ?>

トップページの新着記事を大きく表示するコード

次にいよいよトップページの表示部の記述を行います。ファイル名はloop.phpです。

loop.php

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $counter++; ?>
<?php if (is_mobile()) :?>

	<?php if ($paged <= 1): ?>

		<?php if ($counter <= 1): ?><!-- 最初の記事判別 -->

			<div class="top_article">
			<a class="post-link" href="<?php the_permalink() ?>">
			<div class="top_article_thumb">

			<?php if(has_post_thumbnail()){ ?>
				<?php $title= get_the_title(); the_post_thumbnail(array(720, 480), array( 'alt' =>$title, 'title' => $title)); ?>
			<?php }else{ ?>
				<div class="no-thumbnail"><p>No thumbnail</p></div>
			<?php } ?>
			<p class="postcat">最新記事</p>
			<span class="top_text_area">
			<p class="up-date1"><span class="lsf">time </span><?php
	the_time('Y/m/d') ?></p>
			<h2 class="post-title"><?php the_title(); ?></h2>
			<!-- <p class="cat-link1"><?php the_category(' ') ?></p> -->
			</span>
			</div>
			</a>
			</div><!-- .post -->
			<?php get_template_part("ad_728") ?>
		<?php else:?>

			<?php if($count == $row_new*3+1 && !is_paged() && is_home()){ echo "<div class='hide'>"; } ?>
			<div class="post<?php if($count%2==0){echo ' col-2';} if($count%3==0){echo ' col-3';} ?>">
			<div class="thumb-box sub-color-background">

			<?php if(has_post_thumbnail()){ ?>
				<a href="<?php the_permalink() ?>">
				<?php $title= get_the_title(); the_post_thumbnail(array(150, 150), array( 'alt' =>$title, 'title' => $title)); ?>
				</a>
			<?php }else{ ?>
				<a href="<?php the_permalink() ?>" class="no-deco">
				<div class="no-thumbnail"><p>No thumbnail</p></div>
				</a>
			<?php } ?>

			</div><!-- .thumb-box -->
			<a href="<?php the_permalink() ?>"><p class="up-date"><span class="lsf">time </span><?php
	the_time('Y/m/d') ?>
			<ul style="list-style: none;">
			<li class="post-title1"><?php the_title(); ?></a></li>

			<!-- <p class="cat-link"><span class="lsf cat-folder">folder </span><?php the_category(' ') ?></p> -->
			</div><!-- .post -->
			<?php
			if($count==6){ ?>

			<?php }
			if($count%2==0){echo "<div class='clear2'></div>";}
			if($count%3==0){echo "<div class='clear3'></div>";}
			$count++;
			?>

		<?php endif;?><!-- /最初の記事判別 -->

	<?php else:?>

		<?php if($count == $row_new*3+1 && !is_paged() && is_home()){ echo "<div class='hide'>"; } ?>
		<div class="post<?php if($count%2==0){echo ' col-2';} if($count%3==0){echo ' col-3';} ?>">
		<div class="thumb-box sub-color-background">

		<?php if(has_post_thumbnail()){ ?>
			<a href="<?php the_permalink() ?>">
			<?php $title= get_the_title(); the_post_thumbnail(array(150, 150), array( 'alt' =>$title, 'title' => $title)); ?>
			</a>
		<?php }else{ ?>
			<a href="<?php the_permalink() ?>" class="no-deco">
			<div class="no-thumbnail"><p>No thumbnail</p></div>
			</a>
		<?php } ?>

		</div><!-- .thumb-box -->
			<a href="<?php the_permalink() ?>"><p class="up-date"><span class="lsf">time </span><?php
	the_time('Y/m/d') ?>
			<ul style="list-style: none;">
			<li class="post-title1"><?php the_title(); ?></a></li>
			<!-- <p class="cat-link"><span class="lsf cat-folder">folder </span><?php the_category(' ') ?></p> -->
		</div><!-- .post -->
		<?php
		if($count==6){ ?>

		<?php }
		if($count%2==0){echo "<div class='clear2'></div>";}
		if($count%3==0){echo "<div class='clear3'></div>";}
		$count++;
		?>

	<?php endif; ?>

<?php else: ?>

	<?php if ($paged <= 1): ?>

		<?php if ($counter <= 1): ?><!-- 最初の記事判別 -->

			<div class="top_article">
			<a class="post-link" href="<?php the_permalink() ?>">
			<div class="top_article_thumb">

			<?php if(has_post_thumbnail()){ ?>
				<?php $title= get_the_title(); the_post_thumbnail('large', array( 'alt' =>$title, 'title' => $title)); ?>
			<?php }else{ ?>
				<div class="no-thumbnail"><p>No thumbnail</p></div>
			<?php } ?>
			<p class="postcat">最新記事</p>
			<span class="top_text_area">
			<p class="up-date1"><span class="lsf">time </span><?php
	the_time('Y/m/d') ?></p>
			<?php
			$days = 3;
			$today = date_i18n('U');
			$entry = get_the_modified_date('U');
			$news = date('U',($today - $entry)) / 86400 ;
			if( $days > $news ){ print '<p style="text-align: right;"><span class="back-red" style="color: #ffffff;">New!</span></p>'; }
			?>
			<h2 class="post-title"><?php the_title(); ?></h2>
			<?php get_template_part("sns_count") ?>
			<p class="cat-link1"><?php the_category(' ') ?></p>
			</span>
			</div>
			</a>
			</div><!-- .post -->

		<?php elseif ($counter <= 2): ?>

			<div class="top_article">
			<a class="post-link" href="<?php the_permalink() ?>">

			<div class="top_article_thumb">
			<?php if(has_post_thumbnail()){ ?>
				<?php $title= get_the_title(); the_post_thumbnail('large', array( 'alt' =>$title, 'title' => $title)); ?>
			<?php }else{ ?>
				<div class="no-thumbnail"><p>No thumbnail</p></div>
			<?php } ?>
			<span class="top_text_area">
			<p class="up-date1"><span class="lsf">time </span><?php
	the_time('Y/m/d') ?></p>
			<?php
			$days = 3;
			$today = date_i18n('U');
			$entry = get_the_modified_date('U');
			$news = date('U',($today - $entry)) / 86400 ;
			if( $days > $news ){ print '<p style="text-align: right;"><span class="back-red" style="color: #ffffff;">New!</span></p>'; }
			?>
			<h2 class="post-title"><?php the_title(); ?></h2>
			<?php get_template_part("sns_count") ?>
			<p class="cat-link1"><?php the_category(' ') ?></p>
			</span>
			</div>
			</a>
			</div><!-- .post -->

			<?php get_template_part("ad_728") ?>

		<?php else:?>

			<?php if($count == $row_new*3+1 && !is_paged() && is_home()){ echo "<div class='hide'>"; } ?>
			<div class="post<?php if($count%2==0){echo ' col-2';} if($count%3==0){echo ' col-3';} ?>">
			<div class="thumb-box sub-color-background">

			<?php if(has_post_thumbnail()){ ?>
				<a href="<?php the_permalink() ?>">
				<?php $title= get_the_title(); the_post_thumbnail('large', array( 'alt' =>$title, 'title' => $title)); ?>
				</a>
			<?php }else{ ?>
				<a href="<?php the_permalink() ?>" class="no-deco">
				<div class="no-thumbnail"><p>No thumbnail</p></div>
				</a>
			<?php } ?>

			</div><!-- .thumb-box -->
			<div class="post-info">
			<a href="<?php the_permalink() ?>"><p class="up-date"><span class="lsf">time </span><?php
	the_time('Y/m/d') ?></p>
			<?php
			$days = 3;
			$today = date_i18n('U');
			$entry = get_the_modified_date('U');
			$news = date('U',($today - $entry)) / 86400 ;
			if( $days > $news ){ print '<p style="text-align: right;"><span class="back-red" style="color: #ffffff;">New!</span></p>'; }
			?>
			<h3 class="post-title1"><?php the_title(); ?></a></h3>
			<?php get_template_part("sns_count") ?>
			<p class="cat-link"><span class="lsf cat-folder">folder </span><?php the_category(' ') ?></p>
			</div><!-- .post-info -->
			</div><!-- .post -->
			<?php
			if($count==6){ ?>

			<?php }
			if($count%2==0){echo "<div class='clear2'></div>";}
			if($count%3==0){echo "<div class='clear3'></div>";}
			$count++;
			?>

		<?php endif;?><!-- /最初の記事判別 -->

	<?php else:?>

		<?php if($count == $row_new*3+1 && !is_paged() && is_home()){ echo "<div class='hide'>"; } ?>
		<div class="post<?php if($count%2==0){echo ' col-2';} if($count%3==0){echo ' col-3';} ?>">
		<div class="thumb-box sub-color-background">

		<?php if(has_post_thumbnail()){ ?>
			<a href="<?php the_permalink() ?>">
			<?php $title= get_the_title(); the_post_thumbnail('large', array( 'alt' =>$title, 'title' => $title)); ?>
			</a>
		<?php }else{ ?>
			<a href="<?php the_permalink() ?>" class="no-deco">
			<div class="no-thumbnail"><p>No thumbnail</p></div>
			</a>
		<?php } ?>

		</div><!-- .thumb-box -->
		<div class="post-info">
		<a href="<?php the_permalink() ?>"><p class="up-date"><span class="lsf">time </span><?php
the_time('Y/m/d') ?></p>
		<?php
		$days = 3;
		$today = date_i18n('U');
		$entry = get_the_modified_date('U');
		$news = date('U',($today - $entry)) / 86400 ;
		if( $days > $news ){ print '<p style="text-align: right;"><span class="back-red" style="color: #ffffff;">New!</span></p>'; }
		?>
		<h3 class="post-title1"><?php the_title(); ?></a></h3>
		<?php get_template_part("sns_count") ?>
		<p class="cat-link"><span class="lsf cat-folder">folder </span><?php the_category(' ') ?></p>
		</div><!-- .post-info -->
		</div><!-- .post -->
		<?php
		if($count==6){ ?>

		<?php }
		if($count%2==0){echo "<div class='clear2'></div>";}
		if($count%3==0){echo "<div class='clear3'></div>";}
		$count++;
		?>

	<?php endif; ?>

<?php endif; ?>

ここで何を具体的に行っているのか、簡単に説明してみましょう。

loop.phpというファイルは、その名の通り繰り返し(loop)処理を行うファイルです。記事を抽出して特定の数だけ表示するというのは、実は裏では1つずつ記事を抽出してそれを繰り返しています。

今回は表示数が15件なので、15回繰り返しています。

最後にスタイルを整えよう

さて、これで一応表示するためのプログラムは記述できましたが、スタイルシートを使って美しく見せるようにしましょう。

style.css

/* 最新の記事
--------------------------------------------------------- */
.top_article {
	margin:0 0 15px;
	box-shadow: 0 2px 5px #999;
	float: left;
	width: 100%;
}
.top_article_thumb {
	height: 486px;
	overflow: hidden;
	position: relative;
}
.top_article_thumb img {
	height: auto;
	width: 100%;
}
.top_text_area {
	background: none repeat scroll 0 0 rgba(0, 0, 0, 0.7);
	bottom: 0;
	display: block;
	left: 0;
	position: absolute;
	width: 100%;
	height: 150px;
	border-top:4px solid #4CA5FF;
	transition: all 0.3s ease 0s;
}
.top_text_area h2 {
	margin-bottom: 0;
	padding: 12px 15px 0;
	color:#fff;
	font-size:24px;
	line-height:1.5;
}
.top_text_area .post-data {
	color:#ccc;
	font-size:15px;
	text-align:right;
	padding: 1px 15px 5px;
}
.up-date1{
	font-size: 1.0em;
	color: #fff;
	float: left;
}
.cat-link1{
	float: left;
	line-height: 1;
	clear: both;
	position:absolute;
	top: 0px;
	left:0
}
.cat-link1 a{
	display: inline-block;
	padding: 1px 5px 0px;
	background-color: #414852;
	line-height: 1.4;
	text-decoration: none;
	color: #fff;
	font-size: 1.0em;
}
a.post-link {
	background-color: #fff;
	display: block;
	transition: all 0.3s ease 0s;
}
a.post-link:hover {
	background-color: #ffffdd;
	text-decoration: none;
}
.postcat {
	position:absolute;
	top:0px;
	right:0px;
	background-color: #ff0000;
	color: #ffffff;
	display: inline-block;
	font-size: 16px;
	line-height: 1.5;
	margin: 0;
	padding: 10px 10px 10px;
}

これをそのままstyle.cssに追記します。

続いて、モバイル表示用のコードを追記します。

@media screen and (max-width: 736px) {

.top_article {
	margin:-30px 0 0px;
}
.top_article_thumb {
	height: 250px;
}
.top_text_area {
	height: 120px;
	border-top: initial;
}
.top_text_area h2 {
	padding: 5px 5px 0;
	font-size:19px;
}
.thumb-box {
	width: 180px;
}
.thumb-box img{
	height: 170px;
}
.no-thumbnail{
	height: 170px;
}

}

 

どのように表示されるか試してみよう

さて、早速トップページを表示させてみましょう。うまくいくでしょうか。

New_auticle01

うまくいきました!!

アイキャッチ画像の下部分の上に透過スクリーンが乗って、その上に日付やタイトルが白抜き文字で表示されています。ちなみに左上のカテゴリをクリックすると、カテゴリ内記事一覧ページが表示されます。

念のため、モバイルの表示も見てみましょう。

New_auticle01

表示も問題無いですね。ちゃんと条件分岐されているようです。

2ページ目以降はどうなるかというと、

New_auticle01

ページネーションもきちんと表示されています。

これで思っていた通りの形でやりたいことができました。しかもとってもビューティフル~~!!

さいごに

最新記事を目立たせること自体は、実は色々な関数や構文が既にありますので、それほど難しくない印象でした。

私自身、phpやcssのプロフェッショナルじゃないので、完全に自己流^^; っていうか、まともに本とか買ってきて勉強したとか全く無いですからね。。必要なときに検索して調べるくらいなもので・・

それでもまあなんとかできますので多分皆さんでもできます!

ただ、一番苦労するのはスタイルシート。ホント、これは色々な要素が重なりあって影響しあう、まるで男女の仲のように複雑に絡みあうので(笑)、こんがらがります。

今回の作業の殆どをこの時間に費やしたと言ってもいいくらいです。

なので、もし必要であれば上のコードコピーしてお使いくださいませ。その際FeedlyやFacebookなどで定期購読いただけると非常に嬉しいです!

ぜひお試しあれ~~!

【WordPress】アイキャッチ付きカテゴリリンクを個別記事に表示する(Simplicity,マテリアル)

こんにちは。WordPressカスタマイズにハマっているちゃぼP(@chabo0429)です。

先日この風の羅針盤、それから部長サイトで、個別記事の一番下の部分にアイキャッチ付きのカテゴリページへのリンクが追加されております。

カテゴリをテキストで表示させるだけなら楽なのですが・・・やっぱりそこはアイキャッチ付きのカッコイイリンクの方が見栄えもいいし、分かりやすいですよね。

今日はその方法をご紹介していきます。

「Advanced Custom Fields」プラグインをインストール

通常、カテゴリにアイキャッチ画像は付与することができません。

アイキャッチをカテゴリに付加させるために、まずは「Advanced Custom Fields」というプラグインをインストールします。

インストールとアイキャッチ画像の追加については、以下のサイトに詳しく解説されていますので、参考にしてみてください。

カテゴリーごとに異なるアイキャッチ画像を表示する

single.phpにカテゴリリンクを挿入

プラグインのインストールと、カテゴリへのアイキャッチ画像の追加が完了したら、個別記事のカテゴリページへのリンクを挿入したい部分に、以下のコードを挿入します。

<!--同タグ・同カテゴリー記事を出力-->
<?php

	$tags = get_the_tags();
	$categories = get_the_category();
	$id = get_the_ID();
	$args;


	if($categories){
		$cat_array = array();
		foreach($categories as $category){
			array_push($cat_array, $category->slug);
			if($cats_string)$cats_string .= ",";
			$cats_string .= $category->slug;
		}
	}

	if($tags){
		$tag_array = array();
		foreach($tags as $tag){	
			array_push($tag_array, $tag->slug);
		}

		$args = array(
			'tax_query' => array(
				'relation' => 'OR',
				array(
					'taxonomy' => 'category',
					'field' => 'slug',
					'terms' => $cat_array,
					'include_children' => true,
					'operator' => 'IN'
				),
				array(
					'taxonomy' => 'post_tag',
					'field' => 'slug',
					'terms' => $tag_array,
					'include_children' => false,
					'operator' => 'IN'
				)
			),
			'post__not_in' => array($id),
			'orderby'=>'rand',
			'posts_per_page' => $count
		);
	}else{
		$args = array(
			'category_name' => $cats_string,
			'post__not_in' => array($id),
			'orderby'=>'rand',
			'posts_per_page' => $count
		);
	}

	$the_query = new WP_Query($args);
	if($the_query->post_count > 0){ ?>

		<div class="cat-attention">
		<p>この記事に関連するカテゴリ内の記事はこちら</p>
		</div>
		<?php if($categories){ ?>
			<?php foreach($categories as $category){ ?>
			<div class="same-categories">
				<?php
				// カテゴリーのアイキャッチ画像を表示する
				$image = get_field('category-image', 'category_' . $category->cat_ID);
				?><a href="<?php echo home_url().'/?cat='.$category->cat_ID; ?>"><div class="cat-image-single">
				<?php echo wp_get_attachment_image($image['id']);
				?></div>

				<div class="cat-desc-single">
				<?php echo $category->name; ?>
				</div></a>
			</div>
			<?php } ?>
			<!-- .same-categories -->
		<?php } ?>
	<?php }
?>

ちなみに、このコードだと、カテゴリ名がそのままタイトルに表示されますので、カテゴリの説明を表示させたい場合は、73行目の、

				<?php echo $category->name; ?>

を以下のように変更すると、カテゴリのディスクリプション(説明)を表示させることができます。

				<?php echo $category->category_description; ?>

Category_link01

どちらを表示させるかは、サイトのデザインに合わせて設定してみてください。

ちなみに部長はカテゴリ名を、ちゃぼPはディスクリプションを表示させています。

最後にstyle.cssでデザインを調整

これでソースコードは完成ですので、あとはスタイルシートでデザインを調整します。

.cat-image {
	float: left;
	margin-bottom: 10px;
	margin-right: 10px;
}
.cat-desc {
	margin: 0;
	font-size: 1.5em;
}
.cat-image-single {
	float: left;
	margin-bottom: 0px;
	margin-right: 10px;
}
.cat-desc-single {
	margin-left: 10px;
	font-size: 1.5em;
	position: relative;
	top: 50%;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}
.same-categories {
	margin-bottom: 8px;
	width: 100%;
	height: 150px;
	border: 1px solid #ddd;
	float: left;
}
.same-categories a{
	color: #000;
	text-decoration: none;
	display: block;
	height: 100%;
	transition: color .3s;
}
.same-categories a:hover{
	color: #ff0000;
	background-color: #ffffdd;
	text-decoration: none;
}
.cat-attention{
	color: #ffffff;
	background-color: #000000;
	width: 100%;
	height: 30px;
	font-size: 1.3em;
	text-align: center;
	margin-bottom: 5px;
}

これがPC用です。モバイル表示の時は少し文字を小さくしないとはみ出てしまう場合があるので、

@media screen and (max-width: 736px) {

.cat-attention{
	font-size: 0.95em;
}
.cat-desc-single {
	font-size: 1.3em;
}

}

これを追加しています。

完成イメージ

これで完成です。イメージはこちら。

Category_link02

個別記事の最下部に、カテゴリに設定したアイキャッチとディスクリプションが表示されています。

ちなみに、「きょうのちゃぼP」の記事は単一カテゴリにしか属していませんが、

Category_link03

複数カテゴリに属する記事には、その記事が属する複数のカテゴリが縦に並んで表示されます。

 

Category_link04

部長の記事はこんな感じ。ページめくりの前に挿入しています。こちらはカテゴリ名をそのまま表示しています。

一方のモバイル表示はというと、

Category_link05

きちんと文字も小さくなって、綺麗に枠に収まっています。

 

プラグインの導入などもあって、少々手間がかかりますが、カテゴリページへのリンクを目立たせることでサイト内の回遊率アップに実際効果があるようで、カテゴリページへのアクセスが増加していますので、これはいい感じかも!

私の作成したコードは、simplicityとマテリアルで動作していますが、基本的なコードはテーマに左右されないはずなので、試してみてくださいね!

ぜひ試してみてくださいね!

【WordPress】関連記事をタイル風に並べて表示〜Simplicity,マテリアルカスタマイズ

こんにちは。ちゃぼP(@chabo0429)です。

WordPressのテーマですが、皆さんは何を使っていますか?

この風の羅針盤ではNobuoさん(@Nobuo_Create)制作のマテリアルを使わせてもらっていますが、かなりカスタマイズしてしまっていて、原型をとどめないほどになってしまいました・・・

トップページなんて、もはやサイドバー以外はほぼオリジナルがありませんが、今のデザインは実は結構お気に入りです(笑)

 

今回はまたまた部長のオーダーが入りまして、個別記事の下部に表示される「関連記事」を変更したいとのこと。

これまではリスト形式の表示で、左側にアイキャッチのサムネイル画像、その右側に記事タイトルならび、これが縦一列になって幾つか表示されていました。

これをgori.me風にしたい!」とのことで、上部にアイキャッチ、下部にタイトルで、これがワンセットになって横に幾つか並ぶ、いわゆるタイル風のデザインにしたいとのこと。

 

かなり大掛かりなデザイン変更となりましたが、基本的にスタイルシートだけの変更でなんとかなりそうだったので、チャレンジしてみました。

部長のブログはわいひらさん(@yhira)制作の「Simplicity」ですので、標準のテーマカスタマイザーで同じようなデザインに変更することは可能です。ただ、ちょっと枠線がなかったり、タイトル文字が大きかったりと微調整が必要な部分があり、モバイル表示もちょっと崩れてしまっていたので、以下のようにカスタマイズしてみました。

1-1.【Simplicity】PC表示用コードをstyle.cssへ追記

まずは、PC表示用のデザインを整えます。こちらはSimplicity用のコードです。

/* 関連記事をタイル調へ変更 */
.related-entry-title a {
    text-decoration: none;
    font-size: 18px;
    font-weight: bold;
    color: #333;
    display: block;
    height: 120px;
    width: 210px;
}

.related-entry-thumbnail {
    text-align: left;
    margin-bottom: 15px;
    margin-left: 5px;
    margin-right: 5px;
    width: 213px;
    height: 310px;
    border: 1px solid #ddd;
    float: left;
}

.related-entry-thumbnail img {
    width: 213px;
    height: 200px;
    margin-bottom: 0;
}

.related-entry-thumbnail .related-entry-content {
    font-size: 0.9em;
}

.related-entry-thumbnail .related-entry-content a {
    font-size: 0.8em;
}

.related-entry-thumbnail .related-entry-content {
    margin: -15px 0px 0;
}

.related-entry-thumbnail .related-entry-content:hover {background-color:#ffffe1;}

ここでは、

  • テキストの左寄せ(中央寄せ解除)
  • 画像・テキストボックスの位置調整
  • テキストのフォントサイズ変更
  • マウスオーバー時の背景色の設定とボックス全体をリンク化
  • 枠線の設定

を行っています。これでPC表示での関連記事は以下のようになります。

関連記事01

今回は横3列、縦2列の配置としました。キレイに揃いましたね。

続いて、モバイル表示の調整を行います。

1-2.【Simplicity】モバイル表示用コードをstyle.cssへ追記

モバイルの表示は、PC用のデザインをそのまま使うと表示が崩れるので、モバイル専用のデザインを設定します。ちなみに、アクセス端末がモバイルか否かは、表示画面の幅で決まります。

@media screen and (max-width: 736px) {
.related-entry-title a {
    text-decoration: none;
    font-size: 13px;
    color: #333;
    width: 100%;
    height: 90px;
}

.related-entry-thumbnail .related-entry-content {
    margin: -15px 0px 0;
}

.related-entry-thumbnail {
    text-align: left;
    width: 46.6%;
    height: 240px;
    margin-left: 5px;
    margin-right: 5px;
    float: left;
    border: 1px solid #ddd;
    margin-bottom: 10px;
    line-height: 1.4;
    overflow: hidden;
}

.related-entry-thumbnail img {
    width: 200px;
    height: 150px;
}
}

@media screen and (max-width: 359px) {
#related-entries .related-entry-thumbnail {
    margin: 0 3px 0  !important;
    width: 46.6%  !important;
    margin-bottom: 1em  !important;
    height: 240px  !important;
}
}

ここでは、media screenのmax-widthプロパティを使って、表示する画面の横ピクセル数が「736px以下の場合」「359px以下の場合」の2パターンを設定します。

この「736px」は、iPadよりも小さい端末で適用されます。一般的な中型〜大型のスマホはここに含まれます。

「359px」については、iPhoneSEなどの4インチ以下の端末用です。

これを適用することで、モバイル表示はこんな感じでになります。

関連記事03

モバイル表示は、横幅が狭いので、横2列、縦3列としました。ちなみに特別なことはやっておらず、サイズと間隔の調整のみです。

2-1.【マテリアル】PC表示用コードをstyle.cssへ追記

ここでは、風の羅針盤のテーマ「マテリアル」用のカスタムコードを紹介します。

まずはPC表示用から。

.kanren .thumb-box{
	max-width: none;
	height: 150px;
	width: 200px;
	float: none;
}
.kanren ul a{
	color: #000;
	text-decoration: none;
	display: block;
	height: 250px;
	transition: color .3s;
}
.kanren ul a:hover{
	color: #ff0000;
	background-color: #ffffdd;
	text-decoration: none;
}
.kanren ul li {
	margin-left: 7px;
	margin-right: 7px;
	width: 200px;
	height: 250px;
	border: 1px solid #ddd;
	float: left;
}
.kanren-post-name {
	font-size: 0.9em;
}

やっていることはSImplicity版と同じです。出来上がりはこうなります。

関連記事02

文字の大きさは、Simplicity版より若干大きく、サムネイルを横長にしてみました。

追加でマウスオーバー時に「徐々に文字色が変化」するフェード効果を足しています。

それ以外は同じデザインです。続いてモバイル表示に進みます。

2-2.【マテリアル】モバイル表示用コードをstyle.cssへ追記

Simplicity版と同じで、ここでも端末の736pxの横幅表示をモバイルの判断材料とします。

@media screen and (max-width: 736px) {
.kanren .thumb-box {
    max-width: none;
    height: 100px;
    width: 100%;
    float: none;
}
.kanren-post-name {
	font-size: 0.8em;
}
.kanren ul li {
	width: 46.6%;
	height: 200px;
	margin-left: 5px;
	margin-right: 5px;
}
}

これをstyle.cssに追加します。

関連記事04

出来上がりはこんな感じになります。ここでもサムネイルは横長表示です。

イイ感じに仕上がりました!!

さいごに

部長オーダーのテーマ改造計画でしたが、WordPressの改造は結構楽しいものです。

また、Simplicityはかなりたくさんのブログで採用しているテーマだと思いますので、改造することで個性が強調されますし、是非オススメです。

Simplicity、マテリアルを使用しているサイトでしたら、すぐに使えると思いますので、参考にしてみてください!

ご自身のサイトで使われる際は是非フォロー・コメントいただけると嬉しいです!!

部長ナビのページ・gori.meもヨロシクね!

↓ちゃぼPがスタッフを務める部長のサイト。最近彼は「発注」という言葉をよく使うが、金銭的な絡みは全くない。盛岡名物である「冷麺にわんこそばつける」が調子に乗っている最近の部長の口グセ。

http://nabi1080.com/

↓部長が敬愛する師匠「g.O.R.i」さんのサイト。月間400万PVを超える巨大サイト。デザイン面で大いに参考にさせていただいている。とても見やすいサイトでスッキリしている。素晴らしい!

http://gori.me/

【WordPress】ブログのデザインをChromeデベロッパーツールで修正する方法

こんにちは。ちゃぼP(@chabo0429)です。

WordPressのデザインをカスタマイズするときは、各phpファイルの編集とともに、スタイルシート(style.css)の編集が欠かせません。

それに、日々部長から届くオーダーに対しても、迅速に対応する必要があります(笑)

そこで、普段ちゃぼPがこの「風の羅針盤」や「部長ナビのページ」をどのようにしてカスタマイズしているか、その方法を今日はご紹介してみようと思います!

Chromeデベロッパーツールを駆使して、視覚的イメージを確認しながら修正

スタイルシートというのは、WEBサイトの文章や画像など、様々な要素に対してデザインを指定するための「定義ファイル」のようなもの。

とは言っても、ただの「テキストファイル」で、それだけ見るとただの呪文のようにしか見えません。

私はもうある程度、そこに書かれているものが何を意味しているのか解るようになってきましたが、それでもそれだけで完成形をイメージするのは至難の技。

 

そこで私を助けてくれるのが、「Chromeデベロッパーツール」というものです。

Chromeデベロッパーツールは、Chromeブラウザに標準で搭載されている機能で、WEBサイトを表示しながら、各要素の修正を加えるとリアルタイムで変更した要素が画面上で確認できる、非常に優れたツールです。

私もコレなしでは何もできないくらい、愛用しているツールですが、その呼び出し方法はいたって簡単。

画面上で右クリックして、「検証」を選べばすぐに起動することができます。

Chrome_Developer01

こんな感じで簡単に呼出せます。(ちなみに右上のツールバーから、「その他ツール」-「デベロッパーツール」でも呼出せます)

すると、画面右側にソースコードが表示されてきます。

 

Chrome_Developer02

この右側の上部分が、ページのソースです。基本的に画面の上から下に行くにつれて、順番に各要素がソースとして表示されます。

そして、その下にあるペインがスタイルシートに定義された部分です。

 

Chrome_Developer03

例えば、上の例でいきますと、ソースに「div class=”main”」と表示された部分がありますね。これがブログの本文を表示する部分。

いわゆる「メインカラム」と呼ばれる部分です。この名前に関しては使用するテーマによっても異なりますが、基本的に「main」という名前が付いていることが多いようです。

ちなみに部長の使っている「simplicity」でも同じです。

 

この行を選択すると、左画面の該当する部分がブルーの透過画面になって、「ここが該当している部分ですよ」と教えてくれます。

さて、今回はページトップに三つ並んでいる、「カテゴリ新着記事」をちょっといじってみましょう。

該当する要素を、ソースの部分から探してゆく

Chrome_Developer04

ソースの「div class=”main”」と表示された部分の左側にある「‣」の部分をクリックすると、そこに含まれる要素がその直下に表示されます。イメージとしては、大きな「main」カラムに含まれる、様々な要素がだんだんと絞り込まれれてくる感じです。

ページトップの「カテゴリ新着記事」は、cat_article1,cat_article2,cat_article3と並んでいます。cat_article2を選んでみると、やはり先ほどと同じように、左側の該当部分が青く反転していますね。

試しに、ここに表示されているタイトル文字をちょっと大きくしてみましょう。

 

Chrome_Developer05

記事タイトル部分の要素を、同じ要領で探し出します。ここでは、「cat_text_area」が該当するタイトル文字列を表示する部分です。

そして、右下の部分、ここがこのタイトル文字列をデザインしているスタイルシートの部分なので、ここをちょっと変更してみます。

 

Chrome_Developer06

ここの文字の大きさは、ご覧のように「font-size:15px;」で指定されています。ですから文字の大きさは15pxです。

これを少し大きくしてみましょう。

 

Chrome_Developer07

この「15px」のところをダブルクリックして、「19px」に変更してみました。

すると、すぐに左のタイトル文字がデカくなっているのが分かります。こうやって実際の変更後の画面を確認しながら、修正が出来るのが、このデベロッパーツールの素晴らしいところです。

あとは、気に入ったらここの値をスタイルシートに転記して更新するだけです。

モバイル表示も見ながら確認できるぞ!

さて、ブログをやっていれば、考慮しなければならないのはモバイルでの表示。

その重要度は日に日に増加しており、この「風の羅針盤」でも約半数はモバイルやタブレット端末からのアクセスですので、その表示にも気を遣わなければなりません。

このChromeデベロッパーツールでは、そんなモバイルでの表示も確認しながら、修正を行うことができます。

 

Chrome_Developer08

デベロッパーツールを起動したら、ソース上のスマホアイコンをクリックして、左ペイン中ほどの「端末の種類」をプルダウンで選択、そしてブラウザの再読み込みボタンをクリックします。

 

Chrome_Developer09

するとちゃんとモバイルの表示で同じように修正が出来ます。

ちなみにiPhoneやGalaxyなどのメジャーなスマホのほかに、iPadという項目もあるので、タブレットでの表示も確認しながら修正が可能です。

さいごに

いかがでしたか?

かなりざっくりとした説明になってしまいましたが、こんな感じで日々ちゃぼPはカスタマイズしています。

タグの名前やスタイルシートの定義など、ある程度の知識はやっぱり必要なので、なかなか簡単ではありませんが、そこは習うより慣れろで、調べながら試行錯誤の毎日です。

でも分からないことが分かるようになるのはとっても楽しい!

ブログのデザインは、訪れてきた人がリピーターになってくれるかの大きな分かれ道になりますので、ブログを運営されている方は是非チャレンジしてみてくださいね!