こんにちは! ライターのナナミです。
WordPressの固定ページ、管理画面で編集できて便利ですよね。
しかし、固定ページなどではPHPのコードを動かすことができません。
でも固定ページでコードを使いたい…
同じような記述だから繰り返し使いたい…
そんなときは、ショートコードを使いましょう!
ということで、今回はショートコードについての記事となります。
この記事は下記の流れで進めていきますね。
【基礎】ショートコードの使い方
【発展】コピペで使えるショートコード
【発展】プラグインで設定しよう
ショートコードを使えるようになって、カスタマイズを楽チンにしちゃいましょう!
ショートコードとは?
ショートコードとは、WordPressで使えるコードの呼び出し機能です。
functions.phpに書いた記述を、固定ページや投稿などで呼び出すことができます。
固定ページや投稿では、PHPの処理を行なうことができません。
しかしショートコードで呼び出すようにすれば、使うことができるのです。
ショートコードの使い方
ショートコードの元となるコードは、functions.phpというファイルに記述していきます。
これは、WordPressのサイトやブログを表示する際、かなり重要なファイルです。
しっかりバックアップを取り、下記の手順で設定していきましょう。
functions.phpに記述を書こう
まずはどんなコードを呼び出したいかを考えていきましょう。
・ページタイトルを自動的に出したい
・パーマリンクを表示したい
・所々に同じデザインのボタンを入れたい などなど…
今回は例として、ページのタイトルを自動的に取得して表示するコードで説明していきます。
下記のようなコードですね。
PHP
function testFunc() { ob_start(); echo the_title(); return ob_get_clean(); }
このコードについてもっと詳しく知りたい方は、下記の記事を読んでみてください。
the_title()について
WordPress Codex 日本語版 テンプレートタグ/the title
ob_start()とob_get_clean()について
WordPressのショートコードの表示位置が上に来てしまう問題を解決
ショートコードを定義しよう
呼び出したいコードだけ書いても、まだショートコードの設定ができていない状態です。
add_shortcode()を使って、ショートコードを定義していきましょう。
下記のように、
add_shortcode('ショートコード名', '使用するfunction名')
の書式で書いていきます。
PHP
function testFunc() { ob_start(); echo the_title(); return ob_get_clean(); } add_shortcode('test', 'testFunc');
これで設定はOKです。
投稿画面でショートコードを呼び出そう
ここまで来ればあとは簡単!
下記のように投稿画面に書けば、ショートコードを呼び出すことができます。
[ショートコード名]
実際に使ってみると…
エディタ
ショートコードでタイトル表示:[test]
タイトルが表示されましたね!
コピペで使える!使えるショートコードまとめ
ショートコードの設定方法はわかったけど、どう使えばいいのかわからない…
設定が難しくて、自分じゃ使えないかも…
そんなお悩みはコピペで解決!
使えそうなショートコードをいくつか用意してみました。
そのまま使ってもよし、これを元に調整するもよし。
自由に使っちゃってくださいね。
パーマリンクを取得する
PHP
function pagelinkFunc ( $atts ) { extract( shortcode_atts( array( 'id' => '', ), $atts ) ); return get_permalink( $atts[id] ); } add_shortcode('pagelink', 'pagelinkFunc');
ショートコード
[pagelink id=投稿ID]
これでパーマリンクを取得できるので、記事内の内部リンクも楽チンです。
IDの部分には記事IDを入れてくださいね。
IDなどを指定できるショートコードについて、もっと詳しく知りたい方は、下記の記事をご覧ください。
パンくずを表示する
PHP
function breadcrumbFunc() { //変数を作成 $bread = ''; // インデックスページかを判定 if ( !is_home() ) { // ホームのリンクを変数に入れる $bread .= '<a href="'. home_url( '/' ). '">ホーム</a>'; // カテゴリーアーカイブか投稿ページが表示されているかを判定 if ( is_category() || is_single() ) { // 矢印">"を変数へ入れる $bread .= " > "; // カテゴリを取得して変数へ入れる $cat = get_the_category(); $bread .= '<a href="'. get_category_link( $cat[0]->term_id ).'">'.$cat[0]->name.'</a>'; // 投稿ページが表示されているかを判定 if ( is_single() ) { // 矢印">"を変数へ入れる $bread .= " > "; // 投稿タイトルを変数へ入れる $bread .= get_the_title(); } // 固定ページが表示されているかを判定 } elseif ( is_page() ) { // 矢印">"を変数へ入れる $bread .= " > "; // 固定ページのタイトルを変数へ入れる $bread .= get_the_title(); } } return $bread; } add_shortcode('breadCrumb', 'breadcrumbFunc');
ショートコード
[breadCrumb]
パンくずナビゲーション、とっても便利なのですが、いちいち各ページ分用意するのは大変ですよね。
そんな時は、そのページがどのような種類のページかを判定して、勝手に生成されるようにしちゃいましょう。
今回はシンプルなパンくずのコードを用意してみました。
これをペタッと貼れば、あとはCSSで見栄えを整えてあげればOKです。
楽チンですね!
もっと簡単に!プラグインで設定しよう
使い方はわかったんだけど、functions.phpをいじるのが怖い…
使い方は難しくてわからないんだけど、もっと自由に簡単に設定できる方法が知りたい…
そんな方もご安心ください。
WordPressの魅力は、何と言っても豊富なプラグイン!
もちろん、ショートコードを設定するプラグインも存在しています。
いくつかご紹介していきますね。
Shortcodes Ultimate
https://ja.wordpress.org/plugins/shortcodes-ultimate/
色々なショートコードを用意してくれているプラグインです。
functions.phpへの記述が不要どころか、コードを書く必要はありません。
使いたいショートコードを選んで、記事に記述するだけで使えちゃいます。
Post Snippets
https://ja.wordpress.org/plugins/post-snippets/
各項目に必要な内容を記述するだけで、自由に簡単にショートコードを設定できます。
管理画面で設定するだけなので、functions.phpに書くよりも気軽にできる上、管理も楽チンですね。
まとめ
いかがでしたか?
ショートコードが使えるようになるだけで、今までよりももっと便利に、楽しくWordPressを使うことができます。
ぜひ自分にあった方法で実装して、バンバン活用しちゃってください!