[WP Plugin] MySQL を使って、Markdown on Save Improved の設定状態を確認する(1)
意図しない状態になっているエントリがあるため、これを修正したい。
MySQL を使って、これを洗い出す。
[markdown]
間違いなどありましたら、ぜひコメント下さい。
## 状況
### 問題点
投稿画面での markdown-on-save-improved の設定。
以下の「 Disable Markdown formatting」チェックが外れ、意図しない表示がされている投稿が存在する。
チェックがあると、投稿記事の Markdown 変換が行われなくなる。
### 分類
3つのエントリータイプが混在しているはずで、それぞれ以下の状態であるべき。
#### default
チェック有。プラグインなしのHTMLエントリー。
#### markdown-on-save-improved (以下、osi)
チェック無。Markdown。
#### GitHub Flavored Markdown for WordPress (以下、gfm)
チェック有。Markdown。`[markdown]` タグが content に含まれている。
* チェック有 – default, gfm
* チェック無 – osi
## markdown-on-save-improved の調査
wp_posts, wp_postmeta あたりに設定が書き込まれそう。
> * [データベース構造 – WordPress Codex 日本語版](http://wpdocs.sourceforge.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E6%A7%8B%E9%80%A0)
> * [[wordpress] データベースのテーブル覚書き | DiimoWeblog](http://blog.diimo.net/wordpress-db-options/)
post_content_filtered, sd_foo あたりがキーワードっぽい。
> * [The-East-Wing/plugins/markdown-on-save-improved/markdown-on-save.php at master · ttimsmith/The-East-Wing](https://github.com/ttimsmith/The-East-Wing/blob/master/plugins/markdown-on-save-improved/markdown-on-save.php)
## 問題のあるエントリーを比較する
チェックの外れているエントリと正常なものを比較してみる。
* `ID`, `post_id` で紐付いている。
* `wp_posts` の `post_type = ‘post’ and post_status = ‘publish’ and post_content` が公開されているエントリ。
* `wp_posts` の `post_content` にコンテンツが入っている。
* `wp_postmeta` の `meta_key: _sd_is_markdown` の `meta_value:` にチェック値が入っているよう。
* `meta_value:` の値は、`”`(チェック有) or `1`(チェック無)。
### 正常なエントリの例
“`sql:wp_posts
*************************** 1. row ***************************
ID: 4961
post_author: 4
post_date: 2013-10-30 17:57:35
post_date_gmt: 2013-10-30 08:57:35
post_content: ミニマムにプロジェクトをはじめる手順をまとめます。
[markdown]
:
post_title: Compass: プロジェクトのはじめかた
post_excerpt:
post_status: publish
comment_status: open
ping_status: open
post_password:
post_name: compass-%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e3%81%af%e3%81%98%e3%82%81%e3%81%8b%e3%81%9f
to_ping:
pinged:
post_modified: 2013-11-12 17:32:17
post_modified_gmt: 2013-11-12 08:32:17
post_content_filtered:
post_parent: 0
guid: https://www.d-wood.com/?p=4961
menu_order: 0
post_type: post
post_mime_type:
comment_count: 0
“`
“`sql:wp_postmeta
> select * from wp_postmeta where post_id = 4961 \G
:
*************************** 3. row ***************************
meta_id: 23716
post_id: 4961
meta_key: _sd_is_markdown
meta_value:
:
“`
### 問題のエントリの例
“`sql:wp_posts
> select * from wp_posts where post_type = ‘post’ and post_status = ‘publish’ and post_content like ‘%slice%’ \G
*************************** 1. row ***************************
ID: 5100
post_author: 4
post_date: 2013-12-10 19:00:38
post_date_gmt: 2013-12-10 10:00:38
post_content:
Fireworks がなくなってしまうので、やってみました。
[markdown]
:
post_title: Photoshop で画像を slice する方法
post_excerpt:
post_status: publish
comment_status: open
ping_status: open
post_password:
post_name: photoshop-%e3%81%a7%e7%94%bb%e5%83%8f%e3%82%92-slice-%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95
to_ping:
pinged: http://photoshopvip.net/archives/38051
http://brdr.jp/blog/2013/09/psd-layer-order-for-coding/
post_modified: 2013-12-26 23:19:44
post_modified_gmt: 2013-12-26 14:19:44
post_content_filtered: Fireworks がなくなってしまうので、やってみました。
[markdown]
:
post_parent: 0
guid: https://www.d-wood.com/?p=5100
menu_order: 0
post_type: post
post_mime_type:
comment_count: 0
“`
“`sql:wp_postmeta
> select * from wp_postmeta where post_id = 5100 \G
:
*************************** 3. row ***************************
meta_id: 32363
post_id: 5100
meta_key: _sd_is_markdown
meta_value: 1
:
“`
### meta_value の値を調べる
`wp_postmeta` の `meta_key: _sd_is_markdown` の `meta_value:` に何が入っているのか調査する。
“`sql
> select distinct meta_value from wp_postmeta where meta_key = ‘_sd_is_markdown’;
+————+
| meta_value |
+————+
| |
| 1 |
+————+
“`
## 解決策
`wp_postmeta` の `meta_key: _sd_is_markdown` の `meta_value:` に、適切な値を入れる。
* `”` (チェック有)
* `1` (チェック無)
[/markdown]