【wordpress】ページ別のショートコードを使う方法

Wordpress

カフェれぽエリアリンク

沿線リンク

ジャンル

全体のSCは割と標準装備ですが

今回はショートコードについての話です。
wordpressのテーマでも割と実装されてるショートコード。
このブログで使ってるテーマLuxeritasでも勿論実装されてます。
勿論wordpressを使用してる人の多くが使ってますし実際に結構便利な機能です。
そのショートコードをページ別に別のものを使いたいという事に関する部分のお話です。

そもそもショートコードとは

一応使っていない方や実装されていない方のため向けの基本説明から

ショートコードとは、あらかじめfunction.phpに書いた関数をブラケット([])という囲みで囲った短いコードで呼び出せるとても便利な機能です。ショートコードは管理画面のエディタの「ビジュアル」でも「テキスト」でもどちらでも使うことができます。
WEBDESIGNDAYより引用

ショートコードは、[ ] で特定のワードを挟んでその挟んだワードに設定された内容を実行なり表示なりするものです。
Windowsとかのショートカットのイメージに近いものをhtml上でやるものですね。
勿論、function.phpに書いていない人でも何らかのプラグインを導入して使用しているという場合は割と多いかと思います。
有名なものは Contact Form 7サイトマップ関係のものにも多用されてますのでこれ自体見かけることも多いです。

ただこれを自作となると結構面倒くさいです。

基本的なショートコードの書き方とは

基本構造自体は単純です。PHPの記述になるのですがWEBDESIGNDAYから引用して解説しますと、

//ショートコードで「hello shortcode!」と出力する
function hello_func() {
    return "hello shortcode!";   ←ここに表示したいショートコードの内容
}

         ↓ここに使いたいショートコードのワード
add_shortcode('hello', 'hello_func');
                ↑ここにfunctionで宣言したワード
です。
これをテーマのfunction.php(子テーマがあるなら更新で上書きで消える可能性があるから基本そちらに書くという事になりますが)に書くだけです。
呼び出す場合は、html側=書いてる投稿ページとかに
[hello]    ←functionのadd_shortcode内で宣言したワードを[]で挟む
で使用します。
この結果だとページ上では
hello shortcode!
と出るということですね。
これは、実際短いものなら直接function.phpに書いてもいいのですが、長いものになったりその種類が多くなったりするとfunction.phpに直接書くのは邪魔になります。

これを機にしっかりPHPを覚えたいという方や参考にしたい方はこちらをどうぞ

そこで、テーマによってはこれらを別に記載して使えるような状態にして登録して使うという感じになっているものが比較的多く存在します。

[ad-infeed120]

ショートコードの使い方

WordPressテーマ(TCD)によっては内包された形で自由に内容を記述して使えるように実装していたり、またプラグインによって設定することで使えるようになっています。
無料テーマにおいても、このテーマで使用してるLuxeritasもそうですし他にcocoonを始め他のテーマでも多く標準実装されています。
プラグインだとShortcoder辺りになるでしょうか。

個人的なおさらいもかねて、使い方の解説です。

ショートコードの使用方法:Luxeritas(テーマ)

Luxeritasメニューから定型文の項目を開く → 定型文登録 → ショートコード登録
Luxeritas ショートコード登録Luxeritas ショートコード登録
ショートコード登録はショートコードの形で呼び出せることが出来て、PHPを使用することもそこに引数を加えることも可能です。
PHPを絡めた詳しい使い方はLuxeritasの詳しい解説してるこちら(やるぞう氏のブログ)辺りを参照してもらうとして、基本的にはアドセンス等のhtmlをそこにそのまま貼ってショートコードとして使うような使用方法になると思います。
ちなみに、定型文登録を登録する際に、その中にショートコードを入れて登録することも可能ですのでこの辺の機能としては使い勝手が良いです。

ショートコードの使用方法:cocoon(テーマ)

cocoon設定 → テンプレート → テキストテンプレート/新規追加
20191116scmenu_coc120191116scmenu_coc2
呼び出すときは一覧に表示されたコードを書いて呼び出す形です。
こちらの使い方は投稿のエディターと同様のページが開くのでそこに必要な記述をして必要に応じてショートコードで呼び出すという形のものです。
ビジュアルエディタの使用も可能で、編集時にイメージがわかりやすいということもあります。
編集した内容がそのままページに反映されるという形ですね。
アフィリエイトタグ管理もありますがこちらは機能的な差自体は殆どないのですが、アフィリエイトタグの一括管理を行うことも含まれているので、アフィリエイトを貼るだけに特化してるのでエディタもなく割とシンプルな作りです。
20191116scmenu_coc3
なおこれらの項目はビジュアルエディタ上でプルダウンメニューとして振り分けられますので使い分けとしてもこちらも使いやすい形です。

ショートコードの使用方法:shortcoder(プラグイン)

テーマによってはショートコードが使えないというものもありますが、その場合はShortcoderといったプラグインを使うのも手です。
Shortcoderはビジュアルエディタ、テキストエディタ以外に更にコードディタが使える優れものです。
Shortcoderのcodeエディター画面
コードが使えるのと、コードを置いてもPCとモバイルで出力制限を書けることが出来るので、地味に多彩な設定や動作の振り分けが出来ます。

難を言えば日本語対応されていないという事でしょうか。
それでもショートコードが実装されてないテーマで使うだけのメリットはあると思います。
Shortcoder

[ad-infeed120]

ページ別のショートコードが欲しい

ショートコードは使えると便利という説明はこのくらいで、もう少しニッチな方面に傾けたお話です。
ショートコードは全体に書く場合、function.phpに書く場合でもテーマの機能を使用する際でも、基本的には登録したら全体にそのサイト全体に効果を及ぼすものです(設定で外したりとかは出来ますが)。
勿論これ自体は便利で汎用性があるのでそれはそれで必要なのですが、ただもう少しお手軽にページ内でそのページ専用のショートコードの使用は出来ないのか、という考えが出て来てしまいます、

これをやりたいと思うことになった経緯は主に、

  1. そもそもそのページしか使わないAdSenseとか一々登録するのも面倒だし、エディット画面に直接貼るのもちょっと美観的になんかやだ
  2. 単純に長い文とか繰り返しコピペする以外に便利な方法ないもかなぁ・・・
  3. 引用部分とか処理上わかるように分割しておきたい

という感じからです。

そんな感じのニッチなちょっとした不満を解決するプラグインがぺらラボさんのところの「カエレバ・ヨメレバをショートコードで短く記述するプラグイン」内で紹介されているショートコードでカスタムHTML出力Ver1.1(peralab-scpch110.zip)というプラグインです。

ショートコードでカスタムHTML出力のインストール

ショートコードでカスタムHTML出力(peralab-scpch110.zip)のDL方法

DLのファイルはぺらラボさんのサイト内にありますのでそちらを経由してください、導入のところにDLリンクが張られています。
※このプラグインはwordpressのプラグインページを検索してもありません。

元々は作者のぺらラボさんも書いてますがSANGOのテーマ上でカエレバ・ヨメレバ用に製作されているものですが、一応SANGOではないテーマ上でも問題なく使えますしカエレバ目的で使用しなくても使えます。
このプラグインの良いところは

  1. ページ単位でのショートコードが作れる
  2. このプラグインのメイン機能であり根幹。このページでしか使わないやみたいなものやページ内で繰り返し張り付けるようなものを貼っておける。

  3. ページ内でソースの確認ができる
  4. どんなソースを貼るかがそのページ内でそのまま確認ができるという点。

  5. 極めてシンプルということ
  6. 元々がアドセンスとか外部のソースをそのまま貼る為にのみ特化しているので他にこれという機能は実装してない分無駄がない。

勿論使用のデメリットもあり、それを挙げると、

  1. プラグインを外すとデータが見れなくなる
  2. まあ当然なのですが、外した場合、ページに展開されるわけでもなく再度プラグインを入れないとデータを取り出すのが非常に面倒になります。
    ちなみにプラグインを入れ直すと入れる前の状態に戻ります。

  3. そもそもバックアップの概念がない
  4. 上と被るものですがシンプルゆえにエスクポート機能等もなく、ソースのバックアップを取る場合は個別のページにいって改めてコピペしないといけないという形になります。

つまり色々な機能が必要なのは色々なページで汎用的に使いたいものであって、ページ単位のものは余計な機能そのものが要らない、でも自作まではちょっと・・・という割とニッチなニーズにがっつり当てはまっているといえます。より高い機能を求めたらShortcoderでいいのですから。

ショートコードでカスタムHTML出力の使い方

使い方そのものは簡単。
ぺらラボさんのところに書かれているのでほぼ説明が終わるのですが、プラグインを有効化すれば、エディタ内にショートコードでカスタムHTMLとい項目が出て来ますので、そちらに対象のソースを張り付けて貼りたいところにショートコードを書くというものです。
peralab-scpch110の使い方説明
例えばこんな長いソースをコピペして
20191116scscpch4b
こんな風に設定して該当の場所に
[print_html name="設定した名前]
と、ショートコードを書くだけです。

ページ内完結なので他のページには影響しないというのは大きいです。

ショートコードでカスタムHTML出力のカスタマイズ

デフォルトのままでも問題ないと言えばないのですが、ちょっとだけ細かい不満解消の為の改善ポイントです。

ぺらラボさんのページではDLしたZIPの中のファイルを書き換えてから変更とありますが、プラグインのインストール後に直接変更が可能です。
プラグインエディタ
プラグインのプラグインエディタ → ショートコードでカスタムHTML出力 を選択でOKです
ちなみにサーバー内のファイルを直接編集するという方はFTPから(あなたのurl)/​wp-content/​plugins/​peralab-scpch/​peralab-scpch.php になります。

設定できる件数を変更する方法

各ページ用なのでさすがに10枠は要らないという人のための設定方法。
ショートコードでカスタムHTML出力ページ数変更
この行の数字がそのまま表示される枠となってます。

カスタムタームで使えるようにする方法

ショートコードでカスタムHTML出力ページのプラグインを入れた状態のままですと、投稿と固定ページのみにしか対応してません。
なのでカスタム投稿で使えるようにする方法です。
ショートコードでカスタムHTML出力ページでカスタム投稿対応
プラグイン内ソースのこの部分に作成したカスタム投稿名を追加してください。
, で区切って記述すれば何個でも対応可能です。

ということで誰かのお役に立てればと思い書いてみました。
需要なさそうという気もしますが気にしない・・・
Warning: Undefined variable $wtime2a in /home/c5828442/public_html/shmemo.info/wp-content/themes/luxech/myphpfiles/wtime.php on line 3

Warning: Undefined variable $wtime2b in /home/c5828442/public_html/shmemo.info/wp-content/themes/luxech/myphpfiles/wtime.php on line 4

2019/11/19 wrote