目次
症状
WordPressにプラグイン「WP Githuber MD」を導入した状態で投稿の一括編集機能で投稿データを更新すると、Markdown記述した編集用データがHTMLタグに変換されて保存されてしまう。そのため、投稿を編集する際にMarkdown記述の編集用データがHTMLタグに変換された状態になる。
この投稿では、経緯、対処内容、不具合再現手順を紹介します。
経緯
WordPressにてMarkdown記述で投稿を編集するためにプラグイン「WP Githuber MD」を使っています。
ある時、投稿を編集するため編集画面を開いてみるとMarkdown記述したはずの投稿データが全てHTMLタグに置き換わっていました。幸いリビジョンデータが残っており、元のMarkdown記述を復元できました。
リビジョンの更新日時が編集画面で修正した覚えのない日時になっており、理由を探るべく最後に編集したあとにおこなった作業を振り返りました。
原因は、複数投稿のカテゴリーを一括修正するために利用したWordPress標準の投稿の一括編集機能でした。カテゴリーの他、タグ、ステータス、先頭に固定表示などを一括変更できます。
根本的な解決策は今のところなし
プラグインのgithubページにも同様の不具合が投稿されていますが、プラグイン側では未解決状態です(2020/05/21時点)
Bug: Bulk editing posts converts markdown to HTML in post_content_filtered #78
https://github.com/terrylinooo/githuber-md/issues/78
どうしたか
- 一括編集機能でHTMLタグに変換されてしまったMarkdown記述の編集用データは、リビジョンデータにMarkdown記述のデータが残っていたので、投稿を一つ編集画面で開きデータを復元しました。
- 今のところ一括編集機能を使わなければ、Markdown記述の編集用データがHTMLタグに変換されてしまうことはありません。今後もWP Githuber MDでMarkdown記述で編集したいので、投稿の一括編集機能は使わないことにします。
- 投稿のカテゴリー一括変更をする際にはプラグイン「Batch Cat」を使います。
バージョン: 0.3
作成者: Lenin Lee
URL https://ja.wordpress.org/plugins/batch-cat/
影響のない機能
-
複数投稿の文字列一括置換をするプラグイン「Search & Replace」
作者: Inpsyde GmbH -
クイック編集ではHTMLタグに変換されずに済んだ
管理画面->投稿->投稿一覧
各投稿のクイック編集でカテゴリー更新
他の手段:JetpackのMarkdown機能を使う
JetpackのMarkdownでは投稿の一括編集機能を使ってもMarkdownデータに影響はありませんでした。
複数人で編集していて投稿の一括編集機能の不使用を徹底出来ない場合や、うっかり忘れて自分で使ってしまうなどがありそうな場合は「WP Githuber MD」の使用はやめて、おとなしくJetpackのMarkdownにした方が安全です。
「WP Githuber MD」のプレビュー機能は捨てがたいのですが。
環境
- WordPress バージョン 5.4.1–ja
- プラグイン
- WP Githuber MD
バージョン: 1.15.0
作成者: Terry Lin
URL: https://ja.wordpress.org/plugins/wp-githuber-md/
- WP Githuber MD
「WP Githuber MD」 の投稿編集データはテーブルwp_postsのフィールドpost_content_filteredに格納されている。
Markdown記述した編集用データはデーターベースのテーブル「wp_posts」のフィールド「post_content_filtered」に保存される。
それをHTMLタグに自動変換した画面表示用データはフィールと「post_content」に保存される。
テーブル wp_posts
フィールド名 | 用途 |
---|---|
post_content | 画面表示用データ |
post_content_filtered | 編集用データ |
不具合再現手順
検証用にMarkdown記述したテスト用の投稿を作成しておく
HTMLタグに変換されてしまう手順
管理画面->投稿->投稿一覧
投稿にチェックマークを付けて、一括操作ブルダウンにて編集を選択->適用
投稿の一括編集画面で更新する
(各項目を何も編集していなくとも同様)
以上