[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]