Archive for the 'WP Tips' Category

WordPress> adminログインで2段階認証


TechCrunchのこの記事「全世界のWordPressサイトに大規模攻撃; デフォルトのアドミンユーザ名’admin’がねらわれている」にドキッとした方も多いのではないだろうか。

弊社で管理しているサイトの90%はWordPressでできているといっても過言ではないので、正直他人事ではないです。
対策としてとれる方法は次の通り。(簡単順)

  1. 新しく管理権限ユーザーを作って、adminユーザーを削除する。adminユーザーの持っていた投稿は新しいユーザーに移す
  2. WPのDBを直接書換え。adminのIDと名前を書き換えるだけなので影響が少ないが、phpMyadminなどでの操作が必要。
    UPDATE wp_users SET user_login=’newuser’, user_nicename=’newusername’ WHERE ID=xxx;
  3. 追記:WPをマルチサイト対応にしている場合は、wp_sitemetaのsite_adminsも変更すること。
    そうしないと、ネットワーク管理者になれなくなる。
  4. adminのログインに二段階認証を入れる

 
 
2番目の対策でやれば楽ちんなんだけど、今後adminだけの話ではなくなる可能性は十分あるので、今回は3番目の二段階認証でやってみることにします。まず、スマホ(Android)に AUTHYをインストール。iPhoneでもたぶん同じ。

  1. PCから、AUTHYにSign Inする。CLOUDFLAREなどの大手も使っているみたいだから大丈夫だと思う。
  2. Email、Country、Cellphone、Passwordを入れる。Countryは「Japan(+81)」、Cellphoneは頭のゼロを取る「9012341234」
  3. そうすると、携帯にメッセージ(SMS)が来る。https://www.authy.com/install からアプリをインストールしてねというメッセージなので、Playストアで AUTHYをインストールする。(無料)
  4. Android版 AUTHYをインストールする際も、Country、Cellphone、Passwordを聞かれるので再度入力。6桁のPINコードがメッセージ(SMS)で送られてくるので、それを入力すればインストール完了。
  5. Android版 AUTHYを起動すると、20秒ごとに TOKENが表示される。

 
 
スマホ(Android)で AUTHYが動くようになったら、PCでログイン。

  1. AUTHYでログイン。EmailとPasswordは先ほど入力したもの。
  2. Authy Token画面になるので、携帯に表示された TOKENを入力する。
  3. ダッシュボードが表示されたら「Create new application…」をクリック。Application Nameは適当に決める。
  4. Api Tutorial画面になったら、「or go to your dashboard」をクリック。
  5. 左サイドバーにいま決めた「Application Name」が表示されるので、これをクリック。
  6. このページの「Api Key」をコピーしておく。

 
 
AUTHYの「Api Key」が無事入手できたら、WordPressにプラグインを入れる。

  1. プラグインの新規追加で「Authy Two Factor Authentication」を検索、追加。
  2. 有効化したら、Settings画面で「Api Key」を設定。誰(権限)に対して二段階認証を行うかも設定できる。
  3. 「Disable external apps that don’t support Two-factor Authentication」にチェックを入れると、外部アプリが二段階認証をパスすることになるので、よく考えて設定すること。しない方がいいと思う。
  4. これが済んだら、ユーザープロフィールに移って、個人ごとの設定を行う。
  5. Two-Factor Authentication を Enableに。Country、Cellphoneを入力したら、携帯にメッセージが送られてきて完了。

※ 山本一郎氏がYahoo!に書くくらいだから、相当底辺まで広まったとみて、adminを変更する2番目の方法をとりました。

Google XML Sitemapsプラグインはいいよ!

マルチサイト対応ができていなかったので使っていなかったのですが、β版でサポートを開始したので使ってみることに。
β版はこちらからダウンロードできます。
http://www.arnebrachhold.de/redir/sitemap-dl-beta/

Google ウェブマスターツールにサイトマップを追加します。

bingウェブマスターにもサイトマップを追加します。

しばらく使ってみて、またレポートします。

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

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

<?php the_post_thumbnail( array(150,150), array('class' => 'imgLeft') ); ?>

この用例をみてわかるように、なんでもセットできるんです。
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ができます。

# .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

これだと、index.htmlが入ってきたとき、index.phpとは別扱いされて、404エラーになってしまいます。
これを以下のように書き換えます。

# .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

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

Memo:タブの吐き出し・・・9/3

cleanuptheworld

 
タブを開いてばかりでブラウザが片付かないのでここで吐き出しておく。
ところで、Googleの画像検索って、以前はもう少しお上品だと思ったんだけど、Baiduや Naverの悪い影響か、「吐き出し」みたいな検索でも結構アダルティなグロい画像を出してくるので、要注意!

  1. clearは「floatの解除」ではない
    そうだ、そうだ。『floatの解除は float:none』
  2. max-width
    max-widthを指定したら、<img width=”nn” />が効かなくなったので、注意。style=”width:nnpx;”は大丈夫。

    追記:max-widthのせいじゃなくて、with:auto が効いていたせいだと思う。

  3. WordPress PHP Exec Plugin
    WordPressの投稿やページの中で PHPのコードを書けるようにするプラグイン。勝手に入るやつがポピュラーだけど、入れたいところに特別なタグを書くやり方の方が好きです。

    
    
    
    
  4. テンプレートタグ/next post link
    3番目と4番目のパラメータはめったに使わないのでメモ。

    in_same_cat
      (論理値) 表示している記事と同じカテゴリーの次の記事を表示するかどうかを設定。
      TRUE の場合、同じカテゴリーの記事だけが表示されます。FALSE (デフォルト)
    
    excluded_categories
      (文字列) 表示させたくない記事のカテゴリー ID の番号。
      複数のカテゴリーを除外する場合は コンマを使って区切るようです (例: '1, 5, 15')。
    

WordPress3:あとで書くかもしれないTips

 
ブラウザのタブが溜まりまくりなので、さっさと整理するためにここで一度吐き出しておきます。
といいつつ、書く前に閉じちゃったものがたくさんあって、残っているのは Twitter Tools という大物だけなんですけどね。

Twitter ウィジェット

twitter

 
Twitter ウィジェットについてのちょっとした Tips。
そんなん当たり前やん、という方はヌルーで。

  • フォントサイズが指定できない
    くそー、CSSで指定してんのに何で font-size変わらないんだよ!
    とお嘆きの貴兄。bodyタグの font-sizeや font-familyを強制的に使うみたいですよ。お試しあれ。(bodyじゃないかもしれませんが、とにかくベースの方の要素です)
  • プロフィール画像とIDやタイトルが上下に分かれる
    これは純粋に CSSの問題です。H3タグや H4タグにはよく clear:both; が入っていると思いますので、これを無効にしてください。

    .twtr-hd h3, .twtr-hd h4 {
      clear:none;
    }
    
  • WordPressのウィジェットとして貼りたい
    ハイハイ、PHP Code Widgetプラグインを入れてください。
    Twitter ウィジェットからコピペした JSコードは functions.php で関数にでもして。それを PHP Code Widgetから呼び出します。

    function twitter_widget() {
    ?&gt;
    
    
    new TWTR.Widget({
      version: 2,  type: 'profile',  rpp: 4,  interval: 6000,  width: 'auto',  height: 300,
      theme: {
        shell: {    background: '#17375e', color: '#ffffff' },
        tweets: { background: '#305378', color: '#ffffff', links: '#418a21' }
      },
      features: {
        scrollbar: false, loop: false, live: false, hashtags: true, timestamp: true,
        avatars: false, behavior: 'all'
      }
    }).render().setUser('hogehoge').start();
    
    &lt;?php
    }
    

    本題から外れますが、この functionの書き方、目から鱗と違います?
    こういうのを書くとき、いままでは echoで書いたり、ヒアドキュメントにしたりしてたんですが、?>で PHPを閉じちゃって、HTMLをそのまま書いて最後に<?phpで戻すなんて、なんという荒業なんでしょう! と最初みたとき、びっくりしました。

moファイルを修正

wordpress

WordPressに限ったことじゃないんだけど、他人さまの翻訳ファイル(.mo)を使わせていただいていて、「ちょっとここの訳はなぁ」と思うこともたまにはあると思います。
明らかな間違いだったら、作者に教えてあげるのが親切だと思いますが、自分が使いたい用途が少し特殊で、そのときだけ「こういう言い回しになっててほしいな」ということもあるんじゃないでしょうか?
 
そういうときに、.poファイルがついていれば、Poeditでオレオレ翻訳ファイル(.mo)を作ってチョチョイのチョイでいいんですが、往々にして作者の方はそこまで親切じゃないので、バイナリの .moファイルだけしか付いてこないという場合も結構あります。
そういう場合は、コレ(↓)。

cd C:\Program Files\Poedit\bin\
msgunfmt.exe C:\tmp\hoge.mo -o C:\tmp\hoge.po

これで .poファイルが手に入ります。あとは Poeditで好きにするだけ。
保存のときにこんなエラーが出ますが、.moファイル自体はちゃんと作られてます。

5:07:20: C:\tmp\hoge.po:269: message catalog has plural form translations...
5:07:20: C:\tmp\hoge.po:2: ...but header entry lacks a "plural=EXPRESSION" attribute
5:07:20: C:\tmp\hoge.po:269: message catalog has plural form translations...
5:07:20: C:\tmp\hoge.po:2: ...but header entry lacks a "nplurals=INTEGER" attribute
5:07:20: msgfmt: found 2 fatal errors

次ページへ »