[WP Plugin] MySQL を使って、Markdown on Save Improved の設定状態を確認する(2)
続きです。
間違いなどありましたら、ぜひコメント下さい。
※ WordPressへの掲載の都合上、ショートコードとぶつかる大括弧は、全角[]に置き換えています。
前回のまとめ
wp_postmeta
の meta_key: _sd_is_markdown
の meta_value:
に、適切な値を入れる。
正常値
''
(チェック有) – default, gfm1
(チェック無) – osi
エントリーの確認
default
チェック有。プラグインなしのHTMLエントリー。
markdown-on-save-improved (以下、osi)
チェック無。Markdown。
GitHub Flavored Markdown for WordPress (以下、gfm)
チェック有。Markdown。[markdown]
タグが content に含まれている。
追加調査
こんな形で探してみます。
> select * from wp_posts where post_type = 'post' and post_status = 'publish' order by rand() limit 1 \G
> select * from wp_postmeta where post_id = 4234 \G
meta_key: _sd_is_markdown
がない投稿もある。おそらく導入後にチェックなしの状態で保存をしていない投稿。
対象を確認する
全件数を確認。
> select count(*) from wp_posts where post_type = 'post' and post_status = 'publish';
+----------+
| count(*) |
+----------+
| 261 |
+----------+
> 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
> 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 |
+----------+
> 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, gfm1
(チェック無) – osi
> 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 を使っているエントリ
> 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 |
+----------+
> 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, gfm1
(チェック無) – osi
> 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
> select count(*) from wp_posts where post_type = 'post' and post_status = 'publish' and post_content like '%[/markdown]%';
+----------+
| count(*) |
+----------+
| 103 |
+----------+
> 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, gfm1
(チェック無) – osi
> 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 を調べます。
> 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 する。
> 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 |
+---------+---------+-----------------+------------+
UPDATE wp_postmeta SET meta_value = '' WHERE meta_key = '_sd_is_markdown' AND post_id = 5100;
> 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 に変換されていたから表示が乱れたのか?
表示は乱れたまま。
管理画面のリビジョン機能からバージョンを戻し、手動で保存し直して復旧させた。