Warning: Declaration of FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Tags::wrap($content, $before, $sep, $after) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Category::wrap($content, $sep, $parents) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Thumbnail::wrap($html, $post_id, $post_thumbnail_id, $size) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Meta::wrap($data, $post_id, $key, $ui, $single) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Widget::wrap($params) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/widget.php on line 0

Warning: Declaration of FEE_Field_Comment::wrap($content) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Single_Title::wrap($title) should be compatible with FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Option::wrap($content, $key, $ui) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0
CMS | Sabakura Blog - Part 4

WordPressのリビジョンを削除する方法(プラグイン不使用)

※以前掲載していたSQL文だとメディアライブラリに不具合が生じるとのご指摘をいただきましたので修正を行いました。申し訳ありません。またより安全を期す場合にはWordPressで肥大し続けるリビジョンを管理してすっきりさせる方法で紹介されているようなプラグインの利用をおすすめします。

先日、WordPressのリビジョン機能を停止する方法についての記事を書きました。この記事の設定をしておけば、今後は余計なリビジョンが作られることはなくなります。

しかし、これまでに作成されたリビジョンが削除されたわけではありません。古いリビジョンは相変わらずデータベース上に存在します。これらはの容量を無駄に圧迫する上に、データベース整理の際などに邪魔になります。

WordPressのリビジョンの削除方法

※MySQLの管理ツール「phpMyAdmin」が使える必要があります。また作業は自己責任で行ってください。

テーブルのバックアップ

作業前に念のためにテーブルのバックアップをとっておきます。

  1. phpMyAdminにログインします。
  2. WordPressで使っているデータベースを開きます。
  3. 記事を格納しているテーブル「wp_posts」を開きます。
  4. 「エクスポート」のタブを開きます。
  5. 「ファイルに保存する」にチェックを入れます。
  6. 「圧縮」の「なし」にチェックを入れます。
  7. 「実行する」をクリックするとSQLデータがエクスポートされ、保存ダイアログが表示されるので保存します。

リビジョン削除のSQL文を実行

WordPressでは保存されたリビジョンは、「post_type」という項目が「rivision」の状態で保存されています。
今回はこの「rivision」のデータをSQL文で一括削除します。

  1. 「SQL」のタブを開きます。
  2. 入力済みのSQL文を削除し、かわりに以下のSQL文を貼り付けます。
    DELETE FROM wp_posts WHERE post_type = 'revision';
  3. 「実行する」をクリックします。

以上でリビジョンがデータベースから削除されます。

WordPressのリビジョン機能を停止する方法

リビジョン機能とは

WordPressには、リビジョン機能と呼ばれる履歴保存機能が標準でついています。

ダッシュボードから各記事の編集画面に入ってみると、「リビジョン」の項目に記事の編集履歴がずらりと並んでいるのが分かると思います。

リビジョン一覧の表示例

これはそれぞれの時点での記事内容のバックアップです。
そのため、記事を以前の編集内容に戻したくなった場合に簡単に戻すことができます。

リビジョンの無効化とは

しかしながら、データベースが肥大化する、および記事のID(post_id)が履歴分もカウントされてしまうというデメリットもあります。
そこで今回は、このリビジョン機能を無効化します。

自動保存の無効化とは

また上記のスクリーンショットを見てもらうと[自動保存]というリビジョンがあります。これはリビジョン自体の機能とはべつに記事を自動で下書き保存しているものです。
そのため、あわせて自動保存機能も無効化します。

プラグイン導入か直接編集か

リビジョン機能を停止するには、プラグインを利用するか、設定ファイルのwp-config.phpを直接編集するかのいずれかがあります。

個人的にあまり利用プラグインの数は増やしたくないので、
今回は後者の設定ファイルの編集によって無効化します。

リビジョン機能停止の手順

  1. WordPressをインストールしたフォルダ直下にある「wp-config.php」を開きます。
  2. 79行目辺りの「// 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。」の上に、以下のようにコードを追加します。(WordPress3.2日本語版の場合)
/* リビジョン無効化と自動保存の間隔変更 */
define('WP_POST_REVISIONS', false );
define('AUTOSAVE_INTERVAL',3600);

// 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。
  • 「WP_POST_REVISIONS」を「false」に設定することで、リビジョン機能が無効になります。
  • 「AUTOSAVE_INTERVAL」を「3600」にすることで、自動保存が3600秒(1時間)ごとにしか行われなくなり、実質的に無効化されます。

以上でリビジョン機能が無効化されます。
新規投稿時に編集画面から「リビジョン」の項目が消えていたらOKです。

なお、今回の記事は以下を参考にさせていただきました。ありがとうございます。
参考:WordPressのオートセーブとリビジョン機能をプラグインを使わずに無効化する。- webOpixel

WordPressではてな記法を使えるプラグイン「WP HatenaNotation」導入とカスタマイズ方法

はてな記法とは

はてな記法というのは、はてなダイアリーで使える特殊な記事の装飾方法です。
知ってる人は読み飛ばしてもらって全然OKですが、知らない、使ったことがないという人には、ぜひ知ってほしいです。

はてな記法を使わない場合

たとえば記事内にリストを書きたい場合、普通のブログサービスやWordPressでは、いちいち手でliタグで囲むか、ないしはテキストエリア上部のツールボタンを使う必要があります。

私の場合、記事はテキストエディタで下書きしてるので、手動でタグを書いているわけですが、これが非常に面倒なんです。zen-codingとかも考えましたが、あまり肌に合わなかったので、結局手動で行っていました。

これだと、リストの中にリストが入れ子になるととても面倒です。

<ul>
 <li>関東
  <ul>
   <li>東京</li>
   <li>埼玉</li>
   <li>千葉</li>
  </ul>
 </li>
 <li>関西
  <ul>
   <li>大阪</li>
   <li>兵庫</li>
   <li>京都</li>
  </ul>
 </li>
 ...

このようにものすごく手間がかかり、しかも可読性が悪いです。

はてな記法を使うと

ところが今年になってはてなダイアリーを使いはじめたのですが、そこで使える「はてな記法」だと、これをものすごくシンプルに書き表せます。

はてな記法では、リストは「-」を先頭につけることで表し、さらに入れ子になる場合は「–」のように記号を重ねるだけでOKです。先ほどの例を、はてな記法で書くと以下のようになります。

-関東
--東京
--埼玉
--千葉
-関西
--大阪
--兵庫
--京都

このように、とてもスマートで読みやすい書き方ができます。

このほかにもpreタグを使いやすくしてくれたり、テーブルを簡単に作成できたりと、便利な書き方が多く用意されています。

・はてな記法一覧 – はてなダイアリーヘルプ

このはてな記法を、はてなダイアリーだけでなくWordPressで使えるようにしてくれるプラグインが「WP HatenaNotation」です。

プラグインの導入方法

  1. プラグイン配布ページである「WordPressにはてな記法を導入するプラグインを作った – Rewish」に行きます。
  2. 「ダウンロード」の項目から、プラグインをダウンロードします。
  3. ダウンロードした「wp-hatena-notation.zip」を解凍します。
  4. 解凍したフォルダ内にある「wp-hatena-notation」をWordPressの「plugin」フォルダにFTPでアップロードします。
  5. WordPressにログインし、ダッシュボードを表示します。
  6. 「プラグイン」の項目から、「wp-hatena-notation」を有効化します。

WP HatenaNotationのカスタマイズ

初期設定のままでも問題なく機能しますが、自分のサイトに合わせて、より詳細にカスタマイズすることができます。

ダッシュボードの「設定」→「はてな記法の設定」に進むと、設定が行えます。
以下、それぞれの設定項目について解説します。

無効日指定

ここに日付を設定すると、その日付以前でははてな記法が無効になります。以前の記事において、「*」「-」「+」などの記法に変換されそうな文字を文頭で使っている場合などは、はてな記法を導入した日の日付を設定しておきます。

なお、無効日の設定が必要なければ、「全ての記事で有効」にチェックを入れておけばOKです。

見出し記法の基準値

「*」による見出しの初期階層を指定します。たとえば「h3」にしておくと、「*AAA」は「<h3>AAA</h3>」、「**BBB」は「<h4>BBB</h4>」…となります。

通常は、記事タイトルの次の階層を指定しておくと良いと思います。たとえば記事タイトルをh1にしているなら基準値はh2、タイトルがh2なら基準値はh3という感じです。

包含要素を使用する

この項目有効にすると、はてな記法を使っている記事の場合は、全体がdivタグで囲まれます。

包含要素のclass

「包含要素を使用する」を有効にした場合に設定されるdivタグのclass名を設定します。

脚注部分のclass

はてな記法では、記事本文に脚注を入れられる脚注記法を使った場合、記事の最後に脚注一覧が作成されます。その脚注一覧を囲むdivタグのclass名です。

スーパーpre記法のマークアップ

SyntaxHighlighterなどのコードを見やすくする技術を併用している場合の項目です。(初期設定はSyntaxHighlighter用のものになっていますが、テキストエリア内を編集することで、他のシンタックスハイライトにも対応できます)

なお、WordPressでSyntaxHightliterを利用する方法については「SyntaxHighlighter(Ver3.x)の導入方法」の記事も参考にしてください。

タイトルのキャッシュを保持する日数

はてな記法で使えるhttp記法に関するものです。
http記法では、URL似続けて「:title」と入れることで、リンク先のページタイトルをURL代わりに表示できます。これはサーバーにタイトルをキャッシュすることで実現していますが、そのキャッシュ保持の期間を指定できます。

target属性を追加する

記事のリンクに「target=”_blank”」(リンクを別ウィンドウで開く)を自動追加するかどうかを設定します。

WordPressの改行を使用する

改行に関する設定です。
「使用する」にチェックを入れておくと、改行は通常のWordPressの挙動によってbrに変換され、二回以上連続する改行の場合のみpタグに変換されます。

一方「使用しない」にチェックを入れると、一回のみの改行であってもすべてpタグに変換されるようになります。