タグ:WordPress

【WordPressメモ】カスタムタクソノミーのアーカイブページで、そのページのタクソノミーのスラッグ名を取得する

$term

これだけです。

echo $term;

とすると、タクソノミーのスラッグ名が表示されます。

さらに「get_term_by」を使用すると、そのタクソノミーの情報を取得できます。

$the_term = get_term_by("slug", $term, "タクソノミー名");

うかつに、$termに変数を代入してしまわないよう注意しましょう。

ほかにも、

投稿記事ページで記事の情報を取得できる「$post」

カテゴリーアーカイブページでカテゴリーIDを取得できる「$cat」などがあります。

 

参照サイト

nandani | 2013年03月25日 | コメント(0) | トラックバック(1) | CMS関連

WordPressのセキュリティについて

WordPressをデフォルトの設定で、ゆるゆるのパスワードにしていると簡単に抜かれてしまうということが分かった今日この頃。

ということで、いろいろとサイトを見たり、実践したりしたことをまとめることにしました。

 

門を固める

そもそもログイン画面で敵を止める必要があります。(理想はログイン画面にすら到達できなくすることですが)

 

パスワードの複雑化

パスワードについては最近こんな記事がありました。

2万5000年かかっても破られない究極パスワードの設定方法(1/4) - ウレぴあ総研

どんなものかと思いきや、実は12桁にするだけでまず抜かれないパスワードになるとのこと。(もちろん半角英数字、大文字小文字まぜこぜの辞書アタックにも引っかからない文字列で構成されたものです。)

よく8ケタ推奨といいますが、今では8ケタは危ないらしいです。

12桁だっていずれは危なくなるでしょうが、とりあえず今のところは12桁以上にしておいたほうがよいでしょう。

 

リトライの回数制限を設ける

デフォルトでは、Wordpressは何度でもログインのチャレンジができます。

これではいつか破られるかもしれません。

というわけで、プラグインを使って回数制限を設けましょう。

リトライの回数制限を設けるプラグイン:Limit Login Attempts

指定した回数失敗すると、しばらくログインできなくなり、またそんなことがあった場合メールで知らせてくれたりします。

 

万が一ログインされてしまったら

万が一ログインされてしまった場合でも、被害を最小限に留める必要があります。

 

出力される内容はエスケープする

スクリプトを埋め込まれないよう、よほどコードを書いたりするサイトでない限り、出力されるものはすべてエスケープ処理をしておきましょう。これはテンプレートを地道に編集するしかないです。

もちろん内容フィールドのpタグやaタグなどまでエスケープされては困りますが、scriptという記述を全角に置換したり、strip_tagsで許可したタグのみ出力されるようにすれば、投稿記事に悪意のあるスクリプトを埋め込まれてそのまま出力されると言う心配は少なくなります。

あと、投稿にPHPを書けるプラグインを入れるのも、できるだけやめましょう。

 

テーマを管理画面から編集できなくする

テーマは管理画面から編集できなくしておいたほうが良いでしょう。

通常、メニューの外観>テーマ編集で管理画面からもテーマを編集することができますが、wp-config.phpに

define('DISALLOW_FILE_EDIT', TRUE);

と記述すると、メニューから「テーマ編集」が消え、編集画面が表示できなくなります。

サイト構築中であれば必要かもしれませんが、公開後はそれほど触ることもありませんし、直上げすれば済むことですので、この設定をしておいたほうが良いかと思います。

ちなみにプラグイン編集もできなくなります。

 

プラグインでテーマが正常か確認する

テーマに異常がないか確認してくれるプラグイン:AntiVirus

このプラグインは、手動でもスキャンできますし、設定しておくと1日ごとに定期スキャンをし、異常があったときはメールで知らせてくれるという便利機能まであります。

注意点として、いいね!ボタンなどのiframeにまで反応してしまうので、最初の手動スキャンで個別に許可しておきましょう。

 

その他としては

  • WordPressのバージョンを常に最新にする。
  • プラグインも常に最新のものにする。
  • wp-config.php、htaccessにはアクセスできなくする。
  • 可能であれば管理画面はSSL接続する。
  • 可能であれば管理画面にアクセスできるIPを制限する。
  • WordPressのバージョンを隠す。
  • ユーザー名に「admin」は使わない。ある場合は同権限のユーザーを作って削除するか、通常以上の複雑なパスワードを施す。
  • 定期的にバックアップは取る。
  • 定期的にパスワードを変更する。

といったところでしょうか。

サイトの性質上できないものや、そもそも効果があるのか疑問なものもありますが、やれるものであればやっておいて損はないかと思います。

 

参照サイト

WordPressのセキュリティを徹底強化 | CSSPRO

WordPress のセキュリティ、こんな記事は要注意 | 8bitodyssey.com

WordPressのセキュリティをアップする11のポイント | コリス

nandani | 2013年02月19日 | コメント(0) | トラックバック(0) | CMS関連

WordPressで入れておきたいプラグイン2

最近カスタムポストを使用するようになり、いろいろと変化したのでメモ。

  • Custom Post Type UI
    カスタムポスト・カスタムタクソノミーを簡単に追加・設定できるプラグイン。
  • PS Taxonomy Expander
    カテゴリーだけでなく、カスタムタクソノミーの並び替えも行えるプラグイン。
    並び替えだけでなく、カスタムポストの一覧画面でカスタムタクソノミーを表示する設定ができたりと非常に便利!
  • Custom Field Suite
    カスタムフィールドを簡単に追加・設定できるプラグイン。
    Custom Field TemplateAdvanced Custom Fieldsもあるんですが、完全フリーで使いやすいプラグインとしてはこれが一番かと。(Advancedはループを使う際に有料アドオンを入れる必要があるので)
  • TinyMCE Advanced
    WordpressのリッチテキストエディタをTinyMCEにできるプラグイン。
    正確にはWordpressはもともとTinyMCEですが、さらにカスタマイズできるものです。
  • Contact Form 7
    メールフォームを簡単に設置できるプラグイン。
  • spam-byebye
    スパム対策用プラグイン。
    全然更新されていないで、引き続き使用するか要検討。
  • Search Regex
    (必要なら)サイト内検索&置換を行えるプラグイン。
  • WP Fastest Cache
    キャッシュプラグイン。
    使いやすくて、ソースコードの圧縮もしてくれるなどなかなか便利。
  • DB Cache Reloaded Fix
    データベースのやり取りをキャッシュしてくれるプラグイン。
    管理画面まで軽くなるという便利なプラグインですが、動的なプラグインとは相性が悪かったりするので注意が必要です。
  • Google XML Sitemaps
    Google サイトマップ用プラグイン。
    公開してから有効にしよう。
  • Limit Login Attempts
    ログインのチャレンジ?回数を設定できるプラグイン。
  • Custom Post Type Permalinks
    (必要なら)カスタムポストのパーマリンクを設定できるプラグイン。

nandani | 2013年01月16日 | コメント(0) | トラックバック(0) | CMS関連

カスタムフィールドの値が空だと、meta_queryの条件に引っかからない【WordPress】

バージョンによるバグらしいけど、一応メモ。

「カスタムフィールドテンプレート」で

[test_field]
type=checkbox
value=true

のようなフィールドを追加し、次にテンプレートのquery_postsで

$query = array(
		array(
			'key' => 'test_field',
			'value' => 'true',
			'compare' => '!=',
			'type' => 'CHAR'
		)
	)
);

こんな感じの条件文(つまりtest_filedにチェックが入ってない場合)を書いたところ、一向にヒットしませんでした。
もちろん、チェックが入っていない記事は存在します。

逆に

$query = array(
		array(
			'key' => 'test_field',
			'value' => 'true',
			'compare' => '=',
			'type' => 'CHAR'
		)
	)
);

だと、チェックが入っている記事がちゃんと表示されました。

どうもvalueが空状態だと条件にヒットしなくなるバグが3.1のころにあったみたいです。
それは3.2で正常に戻ったそうなんですが、自分が使っているのは3.4.2・・・
バグ復活といったところでしょうか。

解決方法につきましては、以下のサイトで紹介されておりました。

WordPress3.1系:meta_queryでvalueが空の時の対処法 | ライ麦畑でつかまえられて、思わず出たオナラが案外フローラルだった感動を貴方にも。

他にもラジオボタンやプルダウンにして、絶対に値が入るようにするなどの方法を取るという手もあります。(自分はソースを変えるのが面倒だったので、この方法で回避しました。)

nandani | 2012年12月18日 | コメント(0) | トラックバック(0) | CMS関連

【WordPressメモ】ブログ記事IDからカテゴリー(タクソノミー)情報を取得する

よく使用するけど、よく忘れてしまうやり方のメモ。

ブログ記事IDから、そのブログ記事が所属するカテゴリーの情報を取得する方法です。

通常のカテゴリーならば

$get_the_category = get_the_category("ブログ記事ID");

でOKです。

カスタムタクソノミーの場合は

$get_the_terms = get_the_terms("ブログ記事ID", "タクソノミー名");

となります。

最近はよくカスタムタクソノミーを使うようになったので、これを呼び出す方法を忘れてしまうんですよね~。

 

参考サイト

nandani | 2012年12月13日 | コメント(0) | トラックバック(1) | CMS関連

共有SSL(共用SSL)でContact Form 7

共有SSL(共用SSL)が安全かどうかは置いておいて、とりあえず実現させなければならない場合がある。
そんな場合の対処法です。

まずは
【WordPress】共有SSLでプラグインContact Form 7を運用する方法
を参考に、Contact Form 7の一部を修正します。

次に、プラグイン「WordPress HTTPS」を追加し、設定画面で

  • 「SSL Host」に共有SSLのベースURLを入力。
    https://secure***.sakura.ne.jp/www.nandani.sakura.ne.jp
    というように「共有SSL用のURL/ドメイン」の場合や
    https://www.nandani.sakura.ne.jp
    の「https://初期ドメイン」の場合など、このあたりはサーバによります。
  • 「Force SSL Exclusively」にチェック

と設定します。

 

最後にお問い合わせフォームを設置している投稿(or固定ページ)の編集画面にて「Secure post」にチェックを入れます。

これで共有SSLでもContact Form 7が利用できるようになりました。

ただ、こちらの方法は割と強引に共有SSLに対応させているので、適応させる場合は自己責任でお願いします。

nandani | 2012年09月18日 | コメント(0) | トラックバック(0) | CMS関連

WordPressでページネイション

このプログラムは、コリスさんのサイトにある「WordPressにプラグイン無しでページネーションを設置する方法」を少し改造したものです。

(さらに…)

nandani | 2012年09月04日 | コメント(0) | トラックバック(1) | CMS関連 | PHP関連

マルチサイト化したWordPressのサーバ移転手順

自分用の作業メモなので思いっきりざっくりとした説明。

ここではサーバ移転とともに、ドメイン(または階層)も代わることを前提にしています。

また、以下の説明は、移転後の旧サーバは利用しないこと前提のメモです。テスト用に残しておきたい場合などはバックアップから元に戻す作業などが必要となりますので注意してください。

(さらに…)

カスタム投稿(カスタムポスト)ごとにカテゴリーを設定する【WordPress】

今回使用しているプラグインは「Custom Post Type UI」です。簡単にカスタム投稿(カスタムポスト)を作れて非常に便利なプラグインです。

カスタム分類(カスタムタクソノミー)ガン無視で作っていたので、カスタム投稿(カスタムポスト)ごとにどうやってカテゴリーを作るんだろう?出来ないのかな?なんて数時間悩んでしまったのでメモ。

(さらに…)

nandani | 2012年07月14日 | コメント(0) | トラックバック(0) | CMS関連

WordPressのサイトマップを作る【プラグインなし】

WordPressのサイトマップといえば「Sitemap Generator」プラグインが有名でいつもお世話になってますが、今回はプラグインなしで作ってみることにしました。

早速ですが、出来上がったものがこちら。

(さらに…)

Copyright(c) 2010 - 2017 ダリの雑記