ショートコードたまに作りたくなるけど、結構忘れるのでメモっておこうと思います。
function.phpに以下を追記。
//一番単純なショートコード
function helloFunc() {
return echo "ハローワールド!";
}
add_shortcode('hello', 'helloFunc');
記事内には [hello] を書き込みます
ハローワールド! と出ればOKです。
複数行に渡るタグを入れることも可能です。
広告コードなどを表示させたいときに使えます。
function.phpに追加した部分を以下に書き換え。
//タグを出すだけのショートコード
function shortFunc() {
return '
<p>ここにタグを書き込む</p>
';
}
add_shortcode('hello', 'shortFunc');
続いて、テンプレートタグを使ってみましょう。
function.phpに追加した部分を以下に書き換え。
//ブログ名を出すだけのショートコード
function shortFunc() {
return get_bloginfo('name');
}
add_shortcode('hello', 'shortFunc');
続いてパーツのPHPを呼び出してみましょう
function shortFunc() {
ob_start();
get_template_part('roop');
return ob_get_clean();
}
add_shortcode('hello', 'shortFunc');
roop.php
<ul>
<?php
$args = array(
'post_type' => 'post', // カスタムポスト名
'posts_per_page' => 3 // 投稿件数の指定
);
$the_query = new WP_Query($args);
if($the_query->have_posts()):
?>
<?php while ($the_query->have_posts()): $the_query->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>">
<span class="news-left sc-item fadein"><?php the_time('Y.m.d'); ?></span>
<span class="news-right sc-item fadein"><?php the_title(); ?></span>
</a>
</li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: //投稿がない場合 ?>
<li>記事がありません</li>
<?php endif; ?>
</ul>
記事の一覧を呼び出すサブループです。
パーツ呼び出しにすると、呼び出す側にいつもの書き方でPHPファイルとして作成すればいいのでとてもやりやすいです。
PHPのプログラム書くときも、functionではなくphpファイルとして作ってみちゃいましょう。