WordPress初心者必見!よく使う関数まとめ【ブログ編2】
コラム↓前回の記事を読んでいない方はこちらから
WordPress初心者必見!よく使う関数まとめ【ブログ編1】前回の続きから始めさせていただきます!
<ul>
<?php
$args = array(
'posts_per_page' => 8,
'orderby' => 'date',
'paged' => $paged
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) :while ($my_query -> have_posts()) :$my_query -> the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail('medium'); ?>
<p>
<?php
if(mb_strlen($post->post_title,'UTf-8')>40){
$title= mb_substr($post->post_title, 0, 40, 'UTF-8');
echo $title.'...';
} else {
echo $post->post_title;
} ?>
</p>
<p class="excerpt"><?php echo get_the_excerpt(); ?></p>
<time><?php the_time('Y.m.d'); ?></time>
</a>
<p><?php the_category(' '); ?></p>
</li>
<?php endwhile;else: ?>
投稿がありません
<?php endif;wp_reset_postdata(); ?>
</ul></pre>
今回は12行目以降からの説明になります。
12行目はリンクで飛べるようにする記述です。記事のURLをそのまま出力してくれます。
ですので、aタグのhref属性の中にそのまま記述して使いましょう。
13行目がアイキャッチ画像の出力です。
<?php the_post_thumbnail('medium'); ?>
パラメーターの種類は、小さい順に
the_post_thumbnail( 'thumbnail' ); // サムネイル (デフォルト 150px x 150px :最大値)
the_post_thumbnail( 'medium' ); // 中サイズ (デフォルト 300px x 300px :最大値)
the_post_thumbnail( 'large' ); // 大サイズ (デフォルト 640px x 640px :最大値)
the_post_thumbnail( 'full' ); // フルサイズ (アップロードした画像の元サイズ)
the_post_thumbnail( array( 100, 100 ) ); // 他のサイズ
とあります。筆者は画像サイズが大きいとサイトの表示が遅くなってしまうので、小さすぎない「medium」で設定しています。
次に、15行目〜21行目の記事タイトルを出力する関数です。
ここの記述では、タイトルが40文字以上の場合は「…」で以下を省略するようにPHPで記述していますが、そのまま記事のタイトルを出力したい場合は、
<?php the_title(); ?>
とだけ記述すればOKです。
次に、23行目の抜粋を出力する関数です。
抜粋とは、記事の概要を記述する場所です。
任意入力なので、入力がない場合は記事の本文の最初の一部が出力されます。
<p class="excerpt"><?php the_excerpt(); ?></p>
そして、24行目は投稿(公開)時刻の出力です。
<time><?php the_time('Y.m.d'); ?></time>
Y(年)m(月)d(日)などを用いて、好きな形式で出力することが可能です。
最後に、26行目はカテゴリーの出力です。
<p><?php the_category(' '); ?></p>
categoryの後ろのカッコ内に任意の文字を入れると、区切りとして出力されます。
上のコードでは空白で出力されるようにしています。
そして、
<?php endwhile;else: ?>
投稿がありません
<?php endif;wp_reset_postdata(); ?>
でループを終わらせて、記事がない場合の文言を書き、endif;の後にループをリセットする関数、「wp_reset_postdata();」を記述しています。
こういったリセットする関数を書いていないとたまに不具合などが起きてしまうことがあります。
とはいえ、作者が今まで出会ったバグでリセットを書いていないのが原因だった!ということはないのですが、念のために書いておいて損はありません。
ループ外で使える関数
以上が筆者がよく使うループ内のwordpressの関数でした。
ループの外か内かで使う関数は変わります。
例えば、the_content();という本文を表示する関数は>ループ外では機能しません。
記事一覧ページで出力する場合には気付きませんが、single.php(記事詳細ページ)で使う際に忘れがちです。
うまく動かない時は、だいたい調べれば先人たちが記事にして教えてくれていますので、困ったらすぐに調べてみることをオススメします。
そして、以下からはループ外でよく使う関数をご紹介します。
- get_header();
- get_sidebar();
- get_footer();
こちらは、記述したファイルと同じ階層にあるheader.php、sidebar.php、footer.phpをincludeしてくれます。
パラメーター(カッコ内)に、例えば「’main’」と記述すると、header-main.php、sidebar-main.phpが呼び出されます。
- get_template_directory_uri();
- home_url();
↓出力後
- ドメイン名/wp-content/themes/テーマ名/(今いる階層まで)
- ドメイン名/(今いる階層まで)
前者は、echoとセットで使います。
例えば、imgタグやファイルを参照するときのためのパスを出力してくれます。
後者は、aタグのhref属性などに使えます。
ループ外でボタンなどを設定するときに使いましょう。
まとめ
いかがだったでしょうか。
今回は、初心者の方でも使う機会の多いであろう関数を紹介させていただきました。
WordPressは便利な関数がたくさんありますが、使いこなすには公式サイトをよく読んだり勉強が必要です。
ご自身の満足のいくブログを作って、素敵なWordpressライフを送れることを願っています!
株式会社Knocknote代表取締役。大学卒業後不動産営業に従事した後、ITの重要性を強く感じエンジニアへ転職。ソーシャルゲーム開発、スマホアプリやPepperアプリの企画及び開発、高校でのプログラミング講師などの業務に携わる。2017年1月に創業。現在はプログラミング教育事業、システム開発事業を展開。今後は海外向けの教育事業をさらに拡大させていく事が目標。著書:『作って学べるUnity超入門』(技術評論者)