[WP Plugin] MySQL を使って、Markdown on Save Improved の設定状態を確認する(2)

続きです。

[markdown]
間違いなどありましたら、ぜひコメント下さい。

※ WordPressへの掲載の都合上、ショートコードとぶつかる大括弧は、全角[]に置き換えています。

## 前回のまとめ

`wp_postmeta` の `meta_key: _sd_is_markdown` の `meta_value:` に、適切な値を入れる。

### 正常値

* `”` (チェック有) – default, gfm
* `1` (チェック無) – osi

### エントリーの確認

#### default

チェック有。プラグインなしのHTMLエントリー。

#### markdown-on-save-improved (以下、osi)

チェック無。Markdown。

#### GitHub Flavored Markdown for WordPress (以下、gfm)

チェック有。Markdown。`[markdown]` タグが content に含まれている。

### 追加調査

こんな形で探してみます。

“`sql
> select * from wp_posts where post_type = ‘post’ and post_status = ‘publish’ order by rand() limit 1 \G
“`

“`sql
> select * from wp_postmeta where post_id = 4234 \G
“`

* `meta_key: _sd_is_markdown` がない投稿もある。おそらく導入後にチェックなしの状態で保存をしていない投稿。

## 対象を確認する

全件数を確認。

“`sql
> select count(*) from wp_posts where post_type = ‘post’ and post_status = ‘publish’;
+———-+
| count(*) |
+———-+
| 261 |
+———-+
“`

“`sql:meta_key=’_sd_is_markdown’を持つエントリ数
> SELECT count(*) FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND meta_key = ‘_sd_is_markdown’;
+———-+
| count(*) |
+———-+
| 207 |
+———-+
“`

### default

“`sql
> select count(*) from wp_posts where post_type = ‘post’ and post_status = ‘publish’ and post_content_filtered = ” and post_content not like ‘%[/markdown]%’;
+———-+
| count(*) |
+———-+
| 71 |
+———-+
“`

“`sql:meta_key=’_sd_is_markdown’を持つエントリ数
> SELECT count(*) FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_content_filtered = ” AND post_content NOT LIKE ‘%[/markdown]%’ AND meta_key = ‘_sd_is_markdown’;
+———-+
| count(*) |
+———-+
| 17 |
+———-+
“`

正常値

* `”` (チェック有) – default, gfm
* `1` (チェック無) – osi

“`sql:異常値をもつエントリ数
> SELECT count(*) FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_content_filtered = ” AND post_content NOT LIKE ‘%[/markdown]%’ AND meta_key = ‘_sd_is_markdown’ AND meta_value = 1;
+———-+
| count(*) |
+———-+
| 0 |
+———-+
“`

### markdown on save improved を使っているエントリ

“`sql
> select count(*) from wp_posts where post_type = ‘post’ and post_status = ‘publish’ and post_content_filtered != ” and post_content not like ‘%[/markdown]%’;
+———-+
| count(*) |
+———-+
| 87 |
+———-+
“`

“`sql:meta_key=’_sd_is_markdown’を持つエントリ数
> SELECT count(*) FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_content_filtered != ” AND post_content NOT LIKE ‘%[/markdown]%’ AND meta_key = ‘_sd_is_markdown’;
+———-+
| count(*) |
+———-+
| 87 |
+———-+
“`

正常値

* `”` (チェック有) – default, gfm
* `1` (チェック無) – osi

“`sql:異常値をもつエントリ数
> SELECT count(*) FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_content_filtered != ” AND post_content NOT LIKE ‘%[/markdown]%’ AND meta_key = ‘_sd_is_markdown’ AND meta_value = ”;
+———-+
| count(*) |
+———-+
| 0 |
+———-+
“`

### wp-gfm

“`sql
> select count(*) from wp_posts where post_type = ‘post’ and post_status = ‘publish’ and post_content like ‘%[/markdown]%’;
+———-+
| count(*) |
+———-+
| 103 |
+———-+
“`

“`sql:meta_key=’_sd_is_markdown’を持つエントリ数
> SELECT count(*) FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_content LIKE ‘%[/markdown]%’ AND meta_key = ‘_sd_is_markdown’;
+———-+
| count(*) |
+———-+
| 103 |
+———-+
“`

正常値

* `”` (チェック有) – default, gfm
* `1` (チェック無) – osi

“`sql:異常値をもつエントリ数
> SELECT count(*) FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_content LIKE ‘%[/markdown]%’ AND meta_key = ‘_sd_is_markdown’ AND meta_value = 1;
+———-+
| count(*) |
+———-+
| 2 |
+———-+
“`

## 修正

対象を確認した結果、意外と少ない2件でした。
その id を調べます。

“`sql
> SELECT wp_posts.id FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_content LIKE ‘%[/markdown]%’ AND meta_key = ‘_sd_is_markdown’ AND meta_value = 1;
+——+
| id |
+——+
| 4994 |
| 5100 |
+——+
“`

該当 ID を update する。

“`sql
> SELECT * FROM wp_postmeta WHERE meta_key = ‘_sd_is_markdown’ AND post_id = 5100;
+———+———+—————–+————+
| meta_id | post_id | meta_key | meta_value |
+———+———+—————–+————+
| 32363 | 5100 | _sd_is_markdown | 1 |
+———+———+—————–+————+
“`

“`sql
UPDATE wp_postmeta SET meta_value = ” WHERE meta_key = ‘_sd_is_markdown’ AND post_id = 5100;
“`

“`sql
> SELECT * FROM wp_postmeta WHERE meta_key = ‘_sd_is_markdown’ AND post_id = 5100;
+———+———+—————–+————+
| meta_id | post_id | meta_key | meta_value |
+———+———+—————–+————+
| 32363 | 5100 | _sd_is_markdown | |
+———+———+—————–+————+
“`

`meta_value` を書き換えると、markdown が HTML に変換される? or HTML に変換されていたから表示が乱れたのか?
表示は乱れたまま。

管理画面のリビジョン機能からバージョンを戻し、手動で保存し直して復旧させた。
[/markdown]