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
Sabakura Blog - Part 13

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. 「実行する」をクリックします。

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

SyntaxHighlighterでの行番号の指定、およびハイライトの設定方法

行番号の指定

SyntaxHighlighterでは、1行目の行番号を自由に指定することができます。
たとえばチュートリアル記事などの場合、「○○行目にコードを追加してください」といった手順を書くことがあると思います。このような際にSyntaxHighlighterでも行番号を合わせておくと、より分かりやすくなります。

行番号の指定は、CSSのclass名によって行います。
具体的には、preタグにclassを指定する際に「firstline」という属性および開始行番号を追加設定してます。

見本は以下の通りです。

<pre class="brush:html first-line:37">

上記のように設定すると、以下のように開始行番号が37行目になります。

<h2>記事タイトル</h2>
<h3>見出し1</h3>
<p>ここに記事本文。</p>
<p>ここに記事本文。</p>

ハイライトの指定

SyntaxHighlighterでは他にも便利な機能として、特定の行をハイライトして目立たせる機能があります。

これも行番号と同様に、「highlight」という属性をclassに指定することで行います。あわせて、[]内にハイライトしたい行番号をカンマ区切りで入力します。
なお、「first-line」で開始時の行番号を指定している場合には、ハイライトする行の番号もこれに合わせてください。

見本は以下の通りです。

<pre class="brush:html first-line:37 highlight:[38, 40]">

上記のように設定すると、以下のように38行目と40行目がハイライトされます。

<h2>記事タイトル</h2>
<h3>見出し1</h3>
<p>ここに記事本文。</p>
<p>ここに記事本文。</p>

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