WordPress メルマガ用ランダム記事一覧

WordPressで投稿記事に設定したカスタムフィールドを取得したい

[PHP] WordPressのプラグインを作ろう(4)

[WordPress] 画像の遅延読込でレスポンス速度を改善させる(Lazy Load)

WordPress を使っているかどうかをすぐ確認できる Chrome Sniffer 拡張機能

自作の関数を WordPress のページ内で実行できるようにするショートコードの作り方

[WordPress] upload_max_filesize を php.ini で記述ミス(アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。)

WordPress で特定のタグが付いた記事を表示する方法


WordPressで投稿記事に設定したカスタムフィールドを取得したい

プロが教える WordPress セミナー開催中!

(1) カスタムフィールをを表示する
オプション

画面上部の表示オプションをクリックして「カスタムフィールド」をチェック

(2) 投稿ページのカスタムフィールドに名前と値を入力する
記入

(3) 値の取得

< ?php echo get_post_meta($post->ID , '天気' ,true); ?>

テンプレートなどに上記プログラムを記載すれば表示!!

[PHP] WordPressのプラグインを作ろう(4)

管理画面で設定メニューにページを追加できたので、今度は提供されている機能で値を保存してみよう。
WordPress内で値を保存する場合は、PHPのセッション変数をイメージするとよいかもしれない。

更新はちょっと置いておいて、まずは参照/追加/削除を実装してみよう。

//参照はこんな感じで変数に入れたりします
$value	 = get_option('キーワード');

//追加はプラグイン有効化に実行するのが一般的です
register_activation_hook( __FILE__, 'add_settings' );
function add_settings()
{
	add_option('キーワード', 初期値);
}

//削除もプラグイン無効化に実行してあげましょう
register_deactivation_hook( __FILE__, 'del_settings');
function del_settings()
{
	delete_option('キーワード');
}

有効化で初期値入れているから、実際の処理部分も実装できるよ。
無効化時に設定のゴミは消してあげましょう。
※無効化で設定消えちゃうの困るかもしれないけど、設定値のゴミが残り続けてWordPress本体に負荷をかけることになります。

[WordPress] 画像の遅延読込でレスポンス速度を改善させる(Lazy Load)

emblem-mkoba_200x200

HTML に記載された画像(IMGタグ)は画面スクロールで実際には見えていない画像まで実際には読み込まれています。
これを画面に表示される直前に読み込む(画像の遅延読込)ようにすれば、サーバーへのアクセス数や通信量、画面を表示させるまでの処理時間の短縮が期待できるというわけです。
ちなみに、この技術は jQuery プラグイン「Lazy Load」で実現しています。

WordPress のプラグインにも「Lazy Load」がありますが、残念ながら2年以上も放置された状態です。
lazyload01

 
そのため、こちらの2つのプラグインをご紹介したいと思います。

 
◎【 BJ Lazy Load 】
lazyload02
「Lazy Load」の後継にあたり、一番よく使われているのではないでしょうか。
紹介・解説されているページも多いですし、色々な設定も出来ます。
逆に色々できすぎて、上手く設定しないと他のプラグインとの相性が出たりもしているみたいです。

 
◎【 Unveil Lazy Load 】
lazyload03
こちらはプラグインを有効にするだけで OK なシンプル使い方が特徴です。
単純に記事内の画像にのみが対象なので機能や効果は「BJ Lazy Load」に劣りますが、トラブルも少なく手っ取り早く使えます。

 
利用にあたっては注意点が3つほど。

  • 一画面に全部収まってしまうようなサイトでは効果が無いです。むしろ遅く(jsファイルの実行処理等)なってしまいますので注意が必要です。
  • 広告画像やランキングサイト用のバナー画像が適用されてしまうと本来の目的を果たさなくなってしまう場合がありますので注意が必要です。
  • この機能の性質上、パフォーマンス測定サイトで高判定されるとは限りません。ただ正しく利用すれば実質的なレスポンス速度は改善させるはずです。

WordPress を使っているかどうかをすぐ確認できる Chrome Sniffer 拡張機能

見ているサイトが WordPress でできているか、簡単に知りたいですか?

状況

Web 系、WordPress 系の仕事をしていると、Web サーフィンで見たページが WordPress でできているかどうかが気になることがあります。

ソースや HTTP ヘッダーで確認することもできるのですが、私はとても簡単にチェックできるアドオンとして Chrome Sniffer を使っています。

解決方法

Chrome Sniffer – Chrome ウェブストア から拡張機能としてインストールできます。

Chrome Sniffer 拡張機能

Chrome Sniffer 拡張機能

この拡張機能を入れた Chrome で WordPress で構築された Web サイトを閲覧すると、アドレスバーに WordPress のアイコンが表示されるようになります。

WordPress サイトを表示した時のアドレスバー

WordPress サイトを表示した時のアドレスバー

まとめ

世の中にたくさんあるサイト、調べる際に少しでも楽になると良いですよね。

こんなサイトも WordPress なんだ!と思う事があって面白いです。

残念ながら、この記事を書いている時点では Firefox に同様の機能を持つアドオンを見つけることができませんでした。

自作の関数を WordPress のページ内で実行できるようにするショートコードの作り方

プロが教える WordPress セミナー開催中!

背景

WordPress では、あらかじめ登録してある PHP の関数を呼び出せる「[」と「]」を用いたショートコードという機能があります。

元々 WordPress 自体にもショートコードは存在しているのですが、これを自作してみようと言う記事です。

コード

とりあえず、次のコードを functions.php に追加します。

function hello_now_func() {
    return date_i18n("Y-m-d H:i:s");
}
add_shortcode('hello_now', 'hello_now_func');

続いて投稿や固定ページに次のコードを書き、表示してみましょう。

[hello_now]

こんな感じで見えると思います。
ショートコード表示例

解説

もっとも重要なコードは add_shortcode() 関数です。

第一引数にショートコードとして使いたい名前を指定し、
第二引数に登録した関数を指定します。

つまり、add_shortcode() 関数の前に定義している hello_now_func() を登録していると言う事です。

hello_now_func() は、現在時刻を取得する WordPress の date_i18n() 関数の結果を戻り値とするだけの関数です。

参考:date_i18n() 関数

まとめ

ショートコードを WordPress に追加するのはとても簡単だと言う事が見ていただけたのではないでしょうか。

直接プログラムをページに埋め込むのはセキュリティ的にリスクがありますので、ショートコードを使うのは良い解決策の一つですね。

[WordPress] upload_max_filesize を php.ini で記述ミス(アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。)

ついつい、記載例を確認しないで追加してしまいました・・・
皆様もお気を付けください。

正:upload_max_filesize = 16M

誤:upload_max_filesize = 16MB

間違った表記をすると値全体を無視すると思いきや、単位の部分だけ無視されます!
つまり「16byte」で設定されます。そりゃ動かないでしょ。

参考:内部ロジック[ini_get()]

WordPress で特定のタグが付いた記事を表示する方法

プロが教える WordPress セミナー開催中!

背景

メルマガの記事作成のため、WordPress で書かれた記事の中の特定のタグが付いた記事のみを取得したいと思いつき、実際に書いたコードについてメモしておきます。

方法

やり方は非常に簡単で、query_posts() 関数に渡すパラメータを指定するだけです。

ExecPHP などの PHP をページ内で実行できるプラグインを有効にして、次のコードを利用しましょう。

この例では、「WordPress」というタグがついた記事の一覧を表示します。
「記事タイトル」を「the_title()」関数で、「パーマリンク」を「the_permalink()」を関数で表示させています。
※「本文」は「the_content()」関数で表示できますが、コメントアウトしています

query_posts('tag=WordPress');

if(have_posts()) {
  while(have_posts()) {
    the_post();
    echo the_title() . '<br />';
    echo the_permalink() . '<br />';
    //echo the_content() . '<br />';
  }
}

「query_posts()」関数に渡している引数「’tag=WordPress’」がポイントで、「tag」に「WordPress」タグスラッグを指定した事になります。

複数形も指定でき、「query_posts(‘tag=WordPress,tips’)」と書けば、「WordPress」と「tips」タグスラッグを指定した事になります。

他にも、「query_posts(‘tag_id=12,34′)」の様に「タグ ID」を指定できる他、「tag__and」「tag__in」「tag__not_in」「tag_slug__and」「tag_slug__in」などに対して複数の「タグ ID」や「タグスラッグ」を配列で指定することが可能です。

参考:テンプレートタグ

「the_post()」関数を実行しないと、次の記事へループが進まないので注意しましょう。

まとめ

WordPress は PHP でできているので、PHP が使えるかつ WordPress の関数を知る事で、大幅にできる事が増えて楽しいですね。

あなたの IT の疑問・不安をすべて解決するコンシェルジュ サービス