WordPressのthe_post_thumbnail()、すごくない?!

the_post_thumbnail()って、アイキャッチ画像を表示させたりするのに超絶便利な関数なんだけど、altや titleに余計なものをセットして面倒くさいなぁと思ってました。
で、get_the_post_thumbnail()で変数に受けてから、それを preg_replaceとかしてたわけなんですけど、なんとなんと、そんなことしなくてもいいんです。

[code]
<?php the_post_thumbnail( array(150,150), array(‘class’ => ‘imgLeft’) ); ?>
[/code]

この用例をみてわかるように、なんでもセットできるんです。
array(‘title’ => get_the_title(), ‘alt’ => get_the_title()) みたいなことでOKなんです。
よくできてますね!

WordPressに関連投稿を追加する「WordPress Related Posts」プラグインを導入する

投稿した記事に関連した記事を自動的に追加してくれるプラグインを入れておきましょう。

 

設置は通常のプラグインのインストールと同様に「WordPress Related Posts」で検索してインストールします。
赤丸のところだけ変更しておきましょう。

 

WordPressにSNSボタンを追加する「Sharebar」プラグインを導入する

投稿した記事を Twitterや Facebookで取り上げていただくのは SEO対策の基本ですね。
できるだけ簡単に取り上げていただけるよう、ハードルを下げておきましょう。

WordPressでサイトを作っている場合、一番簡単な対処法は、「Sharebar」というプラグインを入れることです。

設置の方法や、Facebookの幅調整などは、こちら「ソーシャルボタンSharebar(シェアバー)の使い方と設置方法。WordPressプラグイン。」が詳しいです。

 

WordPressで作ったサイトをSEOチェックしたとき、「URLの正規化」ワーニングがでたときにとる対処法

WordPressで作ったサイトをSEOチェックしたとき、「URLの正規化」ワーニングがでることがあります。
ワーニングの原因は、index.php、index.htmlが別ものとして扱われるためです。

対策する理由
index.html(index.php)のあるURLとないURLが混在していると、重複コンテンツとみなされ、SEOの評価を著しく下げる可能性があります。検索エンジンは重複したコンテンツを登録を行うことは基本的にありません。この理由は、同じコンテンツを重複してインデックスしていくと、ある検索クエリに対する検索結果として同一内容を持つ異なるURLを複数表示することになり、検索ユーザーの検索体験の質低下を招くからです。
SEOスカウターβ版より

 

WordPressをインストールすると、インストールディレクトリにこんな感じの .htaccessができます。
[code]
# .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
[/code]

これだと、index.htmlが入ってきたとき、index.phpとは別扱いされて、404エラーになってしまいます。
これを以下のように書き換えます。
[code]
# .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
#RewriteRule ^index\.php$ – [L]
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
[/code]

これで、example.com/ と example.com/index.php と example.com/index.html がすべて同一になります。

Detectify でサイトの脆弱性をチェックしてもらったら Warningがたくさん

Detectifyというサイトがあって、無料で脆弱性のチェックをしてくれる。

登録の仕方等の使い方は、こちら「あなたのWebサイトの脆弱性を調査してくれるサービス『Detectify』」が詳しい。

Scan Startして3日ほどで結果を返してくれる。
試しにうちで管理しているサイトのひとつを調べて見たら、以下のような結果に。
0 Exploits Found / 24 Warnings Found / 222 Notices Found

危ない(Exploits)はゼロでよかったが、注意(Warnings)が24もあるのは気になる。
今日はこれをつぶしていこう。

  1. PHP Easter Egg
    URLの最後に「?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000」これを付けると、phpinfo()が表示されてしまうという、ちょっとしたTips。設定ファイルとか、なんのLIBが有効かなどがわかると侵入者に手がかりを与えかねないのでこれはふさいでおこう。
    「/etc/php5/apache2/php.ini」に「expose_php = On」があるので、これを Offにして完了。

    ※参考> [PHP]phpinfo()に関する小ネタHack

  2. Operating System Disclosure
    ApacheのレスポンスにOSが出ているよという警告。これも隠しておこう。
    「/etc/apache2/conf.d/security」の「ServerTokens Prod」と「ServerSignature Off」で Serverは「Apache」だけになる。

    ※参考> 【Apache】HTTPヘッダの確認方法とセキュリティ対策(レスポンスヘッダの変更方法)

  3. Directory Listing
    ディレクトリ一覧(ファイル一覧)が見えてるところがあるよという警告。これはつぶしておく。
    「/etc/apache2/conf.d/security」に「Options Includes ExecCGI FollowSymLinks」を追加。
    これ自体は、CGIとシンボリックリンクの許可だが、明示的に Optionsを指定することで「Indexes」(ファイル一覧)を禁止することになる。

    ※参考> 第2回 ディレクトリ非表示の意味をもう一度見つめ直す

  4. Cookie not HttpOnly
    HttpOnlyクッキーにしないと、javascript等から読みだされてしまうよということなんですが、変更したときの影響がよくわからないので、ペンディング。
  5. Input AutoComplete
    オートコンプリートが Onになっていると危ないよという指摘だが、これは使い勝手とのトレードオフになるので、このまま放置。

    ※参考> HTML でオートコンプリートをオフにする方法

  6. Unencrypted Login
    WordPressのログイン画面が httpなので、これをSSL(https)にしなさいという指示。
    wp-config.phpに「define(‘FORCE_SSL_LOGIN’, true);」を追加するだけでできるのだが、SSL証明書を用意したり、他のお客様(マルチドメインで運用しているので)への影響を考えてペンディング。

    ※参考> Administration Over SSL

og:typeを restaurantにしてデバッガーでエラーがでるときの対処

お客様のサイトのFacebook対策をしているときに遭遇した件。

レストランのFacebookページなので、素直にこうしたわけですが、Facebookデバッガーで確認するとエラーがでます。
「meta property=”og:type” content=”restaurant”」

食べログなども出るので、まだ一般的に対処していないのかも。

修正する必要があるエラー

Object Missing a Required Value: Object at URL ‘http://tabelog.com/kanagawa/A1404/A140402/14007431/’ of type ‘place’ is invalid because a required property ‘place:location’ of type ‘geo_point’ was not provided.

このエラーは、お店の緯度・経度を設定するとでなくなります。
緯度・経度はこちらで調べられます。

「meta property=”og:latitude” content=”35.320265″」
「meta property=”og:longitude” content=”139.550999″」

Facebookロゴは使用禁止!

https://www.facebook.com/brandpermissions/logos.php
ここによると、Facebookのロゴは使ってはいけないそうです。
いいね!とか、Fだけのものを使ってねということ。

でもそれだとわかりづらいので、こちらを参考に自分で作ってみました。

Tahoma, Bold, シャープ、横106%、縦100%、→あ←100%、←AV→10 です。

似てるでしょうか?

imap_open()のエラー(phpバージョン違い)

詳しく原因まで追究できていないんだけど、誰かの役に立てばと思いアップ。


PHP 5.2.6 で動作していた imap_open() が、PHP 5.3.2 になると動かなくなった。
[code]
#!/usr/bin/php -q
#PHP 5.2.6 のサンプルコード
<?php
$mailserver = "example.com";
$mbox = imap_open("{".$mailserver.":110/pop3/notls}INBOX", "user@".$mailserver, "password", "OP_READONLY");
var_dump($mbox);
if ($mbox) {
imap_close($mbox);
}
?>
[/code]
PHP 5.2.6では、このコードはエラーなく動く。

PHP 5.3.2では、以下のエラーになる。
[code]
PHP Warning: imap_open() expects parameter 4 to be long, string given in …
[/code]
文字列(”OP_READONLY”)が整数(OP_READONLY)に変わったようだ。
ここを修正してもエラーになる。
[code]
PHP Warning: imap_open(): Couldn’t open stream {mail.example.com:110/pop3/notls}INBOX in …
bool(false)
PHP Notice: Unknown: Read-only POP3 access not available (errflg=2) in Unknown on line 0
[/code]
POP3のリードオンリーはダメみたいだ。

しかたがないので、pop3は使わず、imapにしたらうまくいった。
[code]
#!/usr/bin/php -q
#PHP 5.3.2 のサンプルコード
<?php
$mailserver = "example.com";
$mbox = imap_open("{".$mailserver.":143/imap/notls}INBOX", "user@".$mailserver, "password", OP_READONLY);
var_dump($mbox);
if ($mbox) {
imap_close($mbox);
}
?>
[/code]
pop3もimapもサポートしてるメールサーバじゃないとダメだけど、一応解決ということで。

個人輸入代行比較


重さ約1kg(2LB)・大きさ小さめ・価格$50程度の商品を個人輸入する場合の手数料・送料比較

ALICE HOUSE ¥2,782($34.78) 手数料$10+配送料$24.78
mailtail ¥2,784($34.80) 転送手数料$10+配送料+燃料費
goopping ¥4,170($52.13) 基本料金1,280円+送料

※ 換算レートは 1$=80円で計算。
※ いろいろあるけど、あとのところはパッとしない。

Windows7 Home PremiumでXpモードを使う

やりたいことはタイトル通りです。

お客様用に ThinkPad Edge E420を買ったのはいいのですが、このOSが「Windows 7 Home Premium 64」一択で他の選択肢はナシときた。
Office付きを買ったし、別にいいかと思っていたのですが、お客様がどうしても使いたい「文籍(MonJack)」というフリーのソフトが Delphiの32ビット環境で作られており、これがどうやっても動かない。
じゃあ、XPモードでとなるわけですが、Home Premium には XPモードがないよーというわけです。
手順はこんな感じです。

  1. Windows XP Mode のダウンロード
    エディションは「Professional 64ビット版」とかを選んでおくこと。Homeだと選択肢がでない。
    2番目にインストールの「Virtual PC Download」をクリック。
    インストールは「更新プログラムのインストール」みたいになるので、一瞬アレっとなるけど、終わってスタートメニューを見るとちゃんと入っている。
  2. 仮想マシンの作成
    ここでちゃんとしたXPが必要になります。(うちには使わなくなったXPがごろごろしているので問題ありませんが)
    メモリー容量はあとで変えられます。
    CDドライブにXPのインストールCDをセットして、作成した仮想マシーンをダブルクリックし、通常通りXPをインストール。
    一番の問題はパーテションを切るとき、ケチって 10GBとかにしないこと。SP3までアップグレードしたらだいたい10GBがいっぱいになります。20~30GBくらいは切っておきましょう。
  3. 統合機能
    仮想マシーンの「ツール」メニューから「統合機能を有効にする」をクリックする。
    あとは、仮想マシーンの「設定」メニューでドライブ割り当てなどを適宜行う。
  4. パーテションを拡大したいとき
    ケチって10GBとかにした場合のパーテション拡大方法は、仮想ハードディスクのサイズを拡大する に書いてある通り。
    注意点としては、VHD Resizerで拡大するとき、Fixed(容量固定)を選択すること。Dynamic(容量可変)だとうまくいかなかった。
    また、できあがった「.VHDファイル」を仮想マシーンの「設定」メニューで 2台目のハードディスクとしてマウントすること。
    そしてパーテション拡張が終わったら、1台目のハードディスクとしてマウントすればOK。