CMS関連

【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関連

MTのカテゴリページで階層を取得する

カテゴリページで現在の階層の深さを取得する方法は以下のようにMTParentCategoriesを使用します。

<MTSetVar name="category_depth" value="0">
<MTParentCategories>
<MTSetVar name="category_depth" op="++">
</MTParentCategories>

あとは<MTGetVar name="category_depth">で取得できます。(トップレベルは1になります。)

一発で取得できるタグがあるといいんですけどね。

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

MTのプレビューでエラー

MT5.2.2にて、記事のプレビューを見るとMTのエラーが表示されてしまうという現象が発生しました。

エラーは

再構築エラー: ~
~~~~~~~
~~~~~~~
~~~~~~~
<mtEntryCategories>タグでエラーがありました:
<mtCategoryArchiveLink>タグでエラーがありました:
カテゴリアーカイブを公開していないので<$MTCategoryArchiveLink$>は使えません。

というもの。

一応この部分は

<MTIf tag="EntryCategory">
<MTEntryCategories type="primary">
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>
</MTEntryCategories>
</MTIf>

という風に条件分けしたのですが、やっぱりプレビューでエラーが出てしまいます。

もちろん再構築では問題ありませんし、プレビューをしない場合はちゃんと保存もできるのですが、一度プレビューでこのエラーが出てしまうとまともに保存もできなくなってしまいました。

解決方法は、プレビューかどうかの条件文を追加すること

<mt:Unless name="preview_template">
<MTIf tag="EntryCategory">
<MTEntryCategories type="primary">
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>
</MTEntryCategories>
</MTIf>
</mt:Unless>

<mt:Unless name="preview_template">~</mt:Unless>でプレビューではない場合という条件文になります。

 

参考サイト

MovableType プレビュー画面判別用変数について|ホームページ制作のプラルトweb

nandani | 2013年02月26日 | コメント(0) | トラックバック(0) | 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関連

必要なモジュールが見つかりません Digest::SHA

メモ。

MTをテストサーバから本番サーバへ移転したところ、MTにログインした時、以下のようなエラーが出てしまいました。

必要なモジュールが見つかりません Digest::SHA

Digest::SHAモジュールが入っていないから、戻ってねとのこと。

しかしmt-check.cgiでは、MT動作しますよと言われたのだから、これが入ってなくても問題なく動作するはずなんだけどなぁ・・・

ひとまず、普通にMTをインストールしてみて、新規に作成されたデータベースと、テストサーバから移転してきたデータベースとを見比べてみることにしました。

見比べてみた結果、「mt_author」テーブルの「author_password」というフィールドの値が、新規に作成されたデータベースの方は「{SHA}〇〇〇〇・・・」、移転してきたデータベースの方は「〇〇〇〇・・・」となっており、キーとなると思われる{SHA}の有無が確認されました。

「{SHA}〇〇〇〇・・・」の方の値をまるごとコピーし、移転してきたデータベースの方の「author_password」フィールドに上書きしたところ、正常にログインすることができました。(もちろんこの時のログインパスワードは、新規に作成したほうのパスワードです。)

MT移転には注意が必要ですね。

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

Connection error: Too many connections

メモ。

ファーストサーバのライトビズにて、MTをインストールしようとしたところ、テーブルの作成段階で以下のエラーが表示されてしまい、インストールが止まってしまいました。

Connection error: Too many connections

何度やってもダメ。

どうやらDBサーバの調子が悪い時か、コネクションが多すぎる場合に出るようなのですが、契約直後のサーバなのにコネクションが多すぎるということはないはず・・・(共有サーバだから他の利用者がコネクションしまくっているということはあるのか?)

いろいろと調べた結果、「max_connections」を引き上げるといいみたいということが分かり、この値を100に変更してみることにしました。

phpMyAdminにて、以下のSQLを実行。

set global max_connections=100;

その後、インストール作業を再開したところ、何とかインストールが完了。

ちなみに

show status like 'Max_used_connections';

にて、コネクション最大値を調べたところ、設定前が「11」。設定後が「18」になりました。

デフォルトは11ってことなのかな?

 

【追記2013/02/12】

どうやらMT5.2.2自体に問題があるそうです。
MT5.2.3なら大丈夫みたい。

http://www.movabletype.jp/documentation/mt5/release/movable-type-523.html

 

参考サイト

MySQLのチューニング? - satospo

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

MT5.2.3にて記事が無いカテゴリーアーカイブが出力されない【バージョンアップに注意!】

メモ。

MT4系からMT5.2.3にバージョンアップしたところ、ブログ記事が存在しないカテゴリーアーカイブページが無くなってしまいました。

どうもMT5.2.2からこんな仕様になってしまったらしいです・・・(仕様というかバグというか)

これは困った。

親カテゴリーには記事が無くても、サブカテゴリーには記事があるというようなこともあるので、親カテゴリーページがなくなったら辿れなくなってしまいます。

パンくずリストだってリンク切れちゃうし。

MT5.2.2では以下のような解決方法が紹介されてました。

ブログ記事がないカテゴリアーカイブが出力されない(MT5.2.2) - The blog of H.Fujimoto

しかし環境の問題なのか、バージョンが違うせいなのか、プラグインの相性問題なのか、上記の方法ではどうにもならず・・・

完全にお手上げ状態\(^o^)/

仕方ないから、本文が空のエントリーを作って、該当カテゴリーに所属させ、テンプレートで

<MTEntries include_subcategories="1">
<MTIf tag="EntryBody">

</MTIf>
</MTEntries>

という風にして対応しました。(include_subcategories="1"はサブカテゴリの記事も表示するというもの。)

しかし何とかしてほしい・・・

MT5.2.2または5.2.3にバージョンアップする際はご注意ください!

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

MT5でモブログくん

モブログをするために、モブログくんに登録しようとしたところ、ちょっと詰まってしまったのでメモ。

手順

  1. MTにてユーザを作成する。(すでに作成済みのユーザーをモブログに登録したい場合はスルー)
  2. ログアウトし、1.で作成したユーザでログインし直す。
  3. 右上のユーザー名部分をクリックし、「ユーザー情報の編集」画面を開く。
  4. 「Webサービスパスワード」の「内容を表示」をクリックし、パスワードをメモする。
  5. モブログくんのサイトにアクセスし、右上の「使い方はこちら」をクリックする。
  6. 以下を入力する。
    〇XML-RPC エンドポイント
    http://(MTの設置フォルダ)/mt-xmlrpc.cgi
    〇ユーザーネーム
    MTの「ユーザー名」
    〇パスワード
    4.でメモした「Webサービスパスワード」
  7. 後は任意に・・・

詰まった部分は、主に2.と6.です。

「Webサービスパスワード」は総合管理者権限ですら、他のユーザのものは見れない仕様のようで、一度モブログに登録したいユーザーでログインし直す必要があります。

そしてモブログくんにおけるパスワードとは、MT5(多分MT4でも)の場合はこの「Webサービスパスワード」にあたります。

 

参考サイト

nandani | 2013年01月17日 | コメント(0) | トラックバック(1) | 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関連

【WordPressメモ】カテゴリー(タクソノミー)のURLを取得する

通常のカテゴリーのURLを取得する場合は

get_category_link('カテゴリーID');

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

get_term_link('タクソノミーのスラッグ','タクソノミー名');

となります。

本来「タクソノミーのID」でも取得できるはずなんですが、なぜかエラーしか返ってきませんでした。(バージョンは3.4.2)

なお、通常のカテゴリーの場合でも

get_term_link('カテゴリーのスラッグ','category');

で取得できます。

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

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