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

WordPressでトップページかどうかを判断する方法==>is_front_pageを利用

[WordPress]ブラウザの更新を促される・・・

WordPress で特定のカテゴリの記事にだけ情報を付け足す方法

WordPress のショートコードで引数を使う方法

[WordPress] WP-DBManagerでバックアップが動かない

[WordPress] All in One SEO Pack プラグインのOGP出力を無効にする

[WordPress] 既にアップロードした画像ファイルのサムネイル画像を一括作成するプラグイン(Regenerate Thumbnails)


WordPressでトップページかどうかを判断する方法==>is_front_pageを利用

なるべく更新。
細かいことをこつこつと。

今回は、WordPressでトップページかどうかを判断する方法を紹介します。
テンプレートでTOPページのみ出力したい部分などは、is_front_pageを利用して条件分岐をして、出力します。

プラグインの競合などで、動かなくなった時等に効果的です。

< ?php if(is_front_page()){ ?>
ここにTOPページの時の処理を書きます
< ?php } ?>

[WordPress]ブラウザの更新を促される・・・

また忙しさに負けて更新がおろそかに・・・申し訳ない。

久しぶりアクセスしたら、こんな画面が!

「お使いのブラウザは古すぎます!」って、FF5(Firefox5)なんだけど・・・ちょっと酷くない!?(笑

FF(Firefox)やTB(Thunderbird)はプラグインの兼ね合いがあるので、気軽にアップデートできないのが難点なんだよね。
まさか「WordPress」に言われるとは。。。

ちゃんとアップデートします。m(_ _)m

WordPress で特定のカテゴリの記事にだけ情報を付け足す方法

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

WordPress で特定のカテゴリの記事にだけ情報を付け足す方法についてのメモ。

やりたい事

あるカテゴリーにだけ、自社のサービスの紹介などを設けたい、です。

とりあえず実行するための最低限のコードを書いてみただけなので、美しくはないです。

コードの概要

テキストに情報を付け加えるだけの関数を用意し、記事を表示するときに実行されるようにフィルターフックに登録するコードを、テーマなどを弄らなくて良いように functions.php に登録すると言うものです。

コード

下記のコードを、functions.php の適当なところに記述します。

function add_precontents($content) {
	if (in_category('xxx')) {
		$pre_contents =< < <_EOT_
〜表示したい HTML コードなど〜
_EOT_;
	}

	return $pre_contents . $content;
}

add_filter('the_content', 'add_precontents');

add_precontents() 関数が、テキストの加工を担っています。
in_category() 関数でカテゴリーが xxx のときのみ、ヒアドキュメントで指定された内容が $pre_contents 変数に代入され、デザインが適用された記事本文である $content 引数の前に付け足されて戻り値となります。

add_filter() 関数はフィルターフックの為のもので、第一引数の the_content は、投稿内容に対してのフックです。
第二引数には作成した add_precontents() が指定されていますので、投稿内容が引数として渡されることになります。

結果として、xxx カテゴリーに属する全ての投稿内容に変更が加えられることになります。

まとめ
超ざっくりですが、ちょっとしたバナー表示程度であれば、プラグインを作成するよりも簡単ですね。
テーマの更新などで functions.php が上書きされないように気を付けましょう。

WordPress のショートコードで引数を使う方法

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

背景

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

こちらの記事でショートコードの作り方は説明したのですが、ショートコードに引数を渡す方法について今回は記事にしてみました。

コード

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

function showargs_func($atts) {
	extract(
		shortcode_atts(
			array(
				'arg1' => 'val1',
				'arg3' => 'val3',
				'arg2' => 'val2'
			),
			$atts
		)
	);
	return "$arg1<br />$arg2<br />$arg3";
}
add_shortcode('showargs', 'showargs_func');

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

[showargs arg2="newarg2"]

こんな感じで見えると思います。

val1
newarg2
val3

解説

shortcode_atts() 関数は、ショートコードとして登録した関数に渡されるパラメータを処理するためのものです。
欠けている属性にデフォルト値を付与し、ショートコードで認識されない属性をすべて取り除くための関数ですので、渡された連想配列の引数(例では $atts)を直接コードで使う方法に比べて安全性が高まります。

第一引数に認識したい属性名とそのデフォルト値を指定し、
第二引数に解析したい連想配列の変数を指定します。

ただし、この関数の戻り値は連想配列ですので、連想名ごとにスカラー変数に変換する PHP の extract() 関数を更に使うのが一般的なようです。

上記の例では、arg1 と言う連想名を $arg1 にしています。
連想配列ですから、functions.php 側に書いた arg1, arg3, arg2 のように、順番が前後しても問題無く解析が行われます。

また、属性名(例では arg1)はハンドラ関数に渡される前に、WordPress が自動的に小文字化されることに注意しましょう。

参考:
ショートコードAPI – WordPress Codex
extract() – php

まとめ

ショートコードの便利さが引数を使える様になることで大幅にあがりますね。

[WordPress] WP-DBManagerでバックアップが動かない

あるホスティングで「WP-DBManager」のバックアップが動かない現状に遭遇したので調査してみました。
WordPress:バージョン 3.1
WP-DBManager:バージョン 2.60

○症状
「Database Failed To Backup On … Backup File Size Is 0KB」で設定した場所に0Byteのファイルはできている。

WEBで調べたところ、主な原因は以下の2点のようだ。

  • PHPのSafeModeがONになっている
  • パスワードに特殊文字が含まれている

どれも該当しないので、実際にプラグインのソースを確認したところ・・・
ポート番号を標準から変更すると動作しないっということがわかりました。
WordPressのwp-config.phpには「DB_HOST」しか定義していないので、ポート番号を変更する場合には「ホスト名:ポート番号」をホスト名として指定する。
これでWordPress自体はMySQLに接続できてしまうのだが、「mysqldump」コマンドはポート番号を別に指定する必要があるため動作しないようだ。

結局、ホスティングなのでプラグインのソースに手を入れて対応します・・・(泣
変更したファイルは以下の通りです。

  • database-backup.php
  • database-manage.php
  • wp-dbmanager.php

「DB_HOST」をホスト名とポート番号に分割して、「mysqldump」コマンドを正しく生成するようにします。

list($backup['msqlhost'], $backup['msqlport']) = explode(":", DB_HOST);
$backup['msqlport'] = ($backup['msqlport'] == "") ? "3306" : $backup['msqlport'];

※下記はコマンド文字列生成の一部(変更した部分のみ)
 --host="'.$backup['msqlhost'].'" --port="'.$backup['msqlport'].'"

上記で無事に動作しました。

[WordPress] All in One SEO Pack プラグインのOGP出力を無効にする

Jetpack の OGP 出力とバッティングして、Jetpack のOGP出力を抑制する方法は見かけるのですが、逆の「All in One SEO Pack」のOGP出力を抑制する方法が簡単に見つからなかったので載せておきます。
昔から使っていると画面が変わってしまったり、手順を忘れたりしちゃいますよね。

[All in One SEO]-[Feature Manager]を開いて、「Social Meta」の機能を[Activate]/[Deactivate]を切り替えるだけです。
aios_socialmeta

もちろん、「All in One SEO Pack」の OGP 設定の方が記事個別毎に設定できますし、高機能なのですがブログ記事等を個別に対応していくのは大変です。
Jetpack の OGP 出力は有効にするだけで勝手にOGPタグの値をセットしてくれます。
不精者にとっては、むしろ Jetpack の OGP 出力の方が手軽で楽ちんなのではないでしょうか。

下記のようにOGP関連のタグは出力されなくなりました。

<!-- All in One SEO Pack 2.2.2 by Michael Torbert of Semper Fi Web Design[515,607] -->
<meta name="description"  content="Jetpack の OGP 出力とバッティングして、Jetpack のOGP出力を抑制する方法は見かけるのですが、逆の「All in One SEO" />
<meta name="keywords"  content="all in one seo pack,ogp,wordpress,バッティング,無効,tips" />
<!-- /all in one seo pack -->

ご訪問ありがとうございます。
参考になりましたら『いいね!』もお願いします。


ITの活用情報を毎週お届けする無料メルマガに是非ご登録ください。

閉じる

[WordPress] 既にアップロードした画像ファイルのサムネイル画像を一括作成するプラグイン(Regenerate Thumbnails)

wplogo

<

p style=”clear:both;”>

前回お伝えしたサムネイル画像の作成機能が無効になっていたり、外部のデータをインポートした場合には、サムネイル画像が作成されていない状態で画像登録されているものがあります。
これを一括で作成してくれるプラグインが「Regenerate Thumbnails」です。
利用方法は簡単で、プラグインをインストールしたら、[ツール][Regen.Thumbnails]で画面を開き、「すべてのサムネイルを再作成する」ボタンを押すだけです。
regenthumb

 
regenthumb2
 
説明文にも書かれていますが、サーバー環境の性能やアップロード画像の数が多いと完了までにかなりの時間がかかりますので、ご注意ください。

また、この手のプラグインは定期的に利用するものではないと思うので、利用後は停止状態にするか削除してしまって良いかと思います。
 
 
 

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