実際にサンプルコードを動作させながらWordPressショートコードの作り方を確認してみました。
下記サイトを参考にしました。
http://wp.smashingmagazine.com/2009/02/02/mastering-wordpress-shortcodes/
※目次をクリックすると目次の下部にコンテンツが表示されます。
1)functions.phpにショートコードを定義
function hello() { return 'こんにちは!'; } add_shortcode('hl', 'hello');
●サンプルコードの説明
・add_shortcode()関数を使って、hello()関数をショートコードとして登録します。hello()関数の下に下記記述を追加します。
○構文
add_shortcode( $tag , $func );
$tag
記事の本文でこのショートコード実行するのに指定するタグ
$func
上記タグが見つかった場合に実行される関数
2)投稿本文にショートコードのタグを記述
下記の構文でショートコードのタグを記述します。
[hl]
3)表示確認
ブラウザで投稿を表示し、ショートコードのタグを記述した部分が”こんにちは!”と表示される事を確認
[url 引数1]引数2[/url]の形で使用するショートコードを作成します。
下記のように使用します。
ショートコードのタグ
[url href=”http://www.example.com”]ショートコードの例[/url]
出力結果
<a href=”http://www.example.com”>ショートコードの例</a>
●作成方法
functions.phpに下記コードを記述します。
function myUrl($atts, $content = null) { extract(shortcode_atts(array("href" => 'http://'), $atts)); return '<a href="'.$href.'">'.$content.'</a>'; } add_shortcode("url", "myUrl");
●コードの説明
○shortcode_atts( $defaults_array, $atts );
・ショートコードの無効な属性値を除外し、属性とその値を格納した連想配列を返します。
・引数
$defaults_array:認識される属性名とそのデフォルト値を指定する連想配列
$atts:ショートコードハンドラに渡される生の属性配列
・上記例では、属性名がa要素のhref属性でデフォルト値が’http://’としています。
$attsがショートコードの一番目の引数に指定する文字列で、上記例では、”href=”http://www.example.com”です。
引数1に”href”という属性値が指定されている場合はそこで指定された値が使用され、hrefが指定されていない場合は、デフォルト値を使用します。a要素には指定出来る属性が決まっていますが、shortcode_atts()使用する事によって、入力ミスをしてhref以外の文字を入力してしまった場合は除去してデフォルト値にしてくれるので安全に使用できます。
○extract()
・array(“href” => ‘http://www.example.com’, “name” => ‘名前’)といった連想配列を$href, $name などの属性キーの名前のローカル変数を作成します。
$href = “http://www.example.com”
$name = “名前”
・ショートコードの第二引数はa要素の外で使用される文字列なので入力値をそのまま出力しています。
今この記事を読んでいます。[その記事のURL]
1)ショートコードを作成
functions.phpに下記コードを登録
function twitt() { return '<div id="twitit"><a href="http://twitter.com/intent/tweet?text=今この記事を読んでいます。 '.get_permalink($post->ID).'" title="クリックするとこの記事をツイッターに送信" target="_blank">ツイッターに共有</a></div>'; } add_shortcode('twitter', 'twitt');
2)動作確認
①WordPressの記事内に[twitter]を記述
②ブラウザで記事を表示し、”ツイッターに共有”のリンク押下
③ツイッターに”今この記事を読んでいます。[その記事のURL]”のメッセージが送られます。
- VPSサーバーでスナップショットを取得
- ~障害に備え、リカバリーポイントを作成。
- VPSサーバーにログインして、設定内容を確認
- ~グローバルIPアドレス確認、SSHキーを作成。
- VPSサーバーにSSHでログイン
- ~Tera Term、SSH、公開鍵認証方式
- yumコマンドで最新のパッケージにアップデート
- ~全パッケージを最新にアップデート
- Apacheのインストール
- ~yumコマンドでApacheインストール、iptablesでファイアウォールの設定
- PHPとMySQLをインストール
- ~yumコマンドでPHP、MySQLインストール
- WinSCPを使ってWordPressをアップロード
- ~WinSCPをクライアントPCにインストール、ファイルアップロード方法
- WordPressをインストール
- ~MySQLでWordPress用データベース作成、wp-config.phpファイルの設定
- CentOSのファイアウォール設定
- ~iptablesを使ってネットワークフィルタリング設定を一から行う
- OpenSSHの設定をよりセキュアに
- ~ログイン制限、ポート変更、認証方式
- ApacheでTCPのTraceメソッドを無効にする
- ~Apacheの設定変更、Telnetで動作確認
- ヘッダーにApacheバージョンが表示されないようにする
- ~Apacheの設定変更、Telnetで動作確認
- Apacheでディレクトリ内一覧表示を無効にする
- ~autoindex_moduleのロードを無効にする
- セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
- ~MySQLの匿名ユーザーにパスワードを設定、または削除
- PHPのバージョンが表示されないようにする
- ~php.iniの設定変更
- WordPressディレクトリのパーミッションをセキュアに
- ~WordPress用ディレクトリの所有グループ、ユーザー、パーミッション設定
- パーマリンク設定時のApache設定
- ~WordPressパーマリンクの設定、Apache .htaccessの設定
- WordPressテーマの選定
- ~テーマ追加の特徴フィルターの項目、テンプレートキング
- WordPressで画像のアップロード、サイズ調整、リンクを設定
- ~アップロード画像の画像サイズ、サムネイル、画像編集、リンク設定
- 更新可能なRPMパッケージのリストをメールで送信する
- ~yumコマンド、Bashスクリプト、Cron
- Linuxでディスク使用量が多いディレクトリを調べる方法(1)
- ~du --max-depth
- Linuxでディスク使用量が多いディレクトリを調べる方法(2)
- ~duコマンド、sortコマンド
- WordPressデータベースのバックアップとリストア
- ~コマンドラインでバックアップ、リストア
- WordPressのバージョンアップと旧バージョンへの戻し
- ~データベースとディレクトリのバックアップ、リストア
- BashスクリプトでWordPressデータベースを自動バックアップ
- ~MySQLデータベースをBash、Cronを使って自動バックアップ、メール通知
- BashスクリプトでDos攻撃など大量アクセスのログを検知
- ~Apacheアクセスログ、Dos、Cron、メール通知
- ブートストラップ3を使って自作テーマ作成
- (1)全体概要
- (2)ブートストラップのサンプルを使ってindex.phpを作成
- (3)header.php、sidebar.php、footer.php、index.phpのテンプレートファイル作成
- (4)JavaScriptインクルードの設定
- (5)投稿本文表示用のテンプレートファイルを作成
- (6)単一投稿用(single.php)のテンプレートファイル作成
- (7)固定ページ用(page.php)のテンプレートファイル作成
- (8)検索結果表示用(search.php)のテンプレートファイル作成
- (9)アーカイブ表示用(archive.php)のテンプレートファイル作成
- (10)カテゴリー表示用(category.php)のテンプレートファイル作成
- (11)WordPressのメニュー画面でナビゲーションメニューを設定
- (12)サイトタイトル、キャッチフレーズを表示できるようにheader.phpを修正
- (13)カスタムヘッダー画像を使えるようにheader.phpを修正
- (14)404.phpテンプレートファイルを作成
- (15)記事タイトル部分のCSS設定
- (16)記事メタデータ部分のCSS設定
- (17)記事本文部分のCSS設定
- (18)前後のページへのリンクのCSS設定
- (19)前後の投稿へのリンクのCSS設定
- (20)コメント投稿フォーム、コメント表示部のCSS設定
- (21)ウィジェット部のCSS設定
- (22)アーカイブページのCSS設定
- (23)画面を左右にスライドさせるボタンのCSS設定
- ~Bootstrap3、自作テーマ作成、TwentyFourteen
- Bootstrapのフリーのテーマを使ってデザインを簡単にカスタマイズ
- ~Bootstrap3のスタイルをカスタマイズ
- 簡単なショートコードを作ってみる
- ~ショートコードの作り方
- ショートコードを使って関連記事のリンクを自動で挿入
- ~ショートコードの簡単なサンプル
- ショートコードを使ってディレクトリ内のファイル名を取得し、投稿内にリンクを挿入
- ~カスタムフィールド利用、PHPで日本語文字列検索などのコーディング
- WordPress投稿内でAngularJSを使用
- ~AngularJS、Bootstrap、アコーディオン
- Bootstrap3で作成したナビゲーションメニューをAngularJSに変更
- ~AngularJS、Bootstrap、自作テーマheder.php
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- ~AngularJSを使って投稿内にGoogleマップ
WordPresssショートコード
AJAX、AngularJSなどその他応用
- Ruby on Rails(他サイト)
- ~構築、CMS、Bootstrap、AngularJS