web-dev-qa-db-ja.com

WordPressがコンテンツ内のHTMLコメントを削除しないようにする

ビジュアルエディタからテキスト(HTML)エディタに切り替えてコードに HTMLコメント を追加するたびに、 <!-- this is a comment-->、WordPressは変更を保存するか、編集モード間を行ったり来たりして削除します。

これはWordPressとTinyMCEのどちらかというと奇妙なことなのでしょうか、そしてもっと重要なことに、コメントをコンテンツに残しておくにはどうすればよいのでしょうか。

4
j08691

TinyMCEがこれを行っているように見えますが、valid_elementsまたはextend_valid_elementsオプションを変更することで修正できます。これをとても簡単にする Advanced TinyMCE Con​​figuration プラグインを使っています。上記のいずれかのオプションで使用する値は--[*]'です。

例えば、valid_elements: 'strong,em,--[*]'です。

0
j08691

これは 非常に古いWordPress HTMLコメントのバグ によるもので、完全に修正されたことはありません。

あなたはグーテンベルクを使うかもしれません、それはより良いHTMLコメントを扱います。

また、 This Post は、終了HTMLコメントタグが機能する直前に、開始HTMLコメントTAGを配置することをお勧めします。このような:

<!-- some HTML Comment <!-- -->

これは有効なHTMLコメントですが、私のテストではこれは時々機能しますが、それ以外の場合は不安定な動作を示します。

バグはまだ存在し、WordPress 5.0(マイルストーンとして設定)で修正されるようにマークされているので、まだ不規則な動作が見つかるかもしれません。

ショートコードの修正

HTMLコメントがあなたにとってあまりにも重要であるならば、あなたは一貫してコメントを置くためにショートコードを使うかもしれません。たとえば、このサンプルプラグインを使用します(必要に応じて変更します)。

<?php
/*  
Plugin Name:  WPSE HTML Comment Shortcode
Plugin URI:   https://wordpress.stackexchange.com/a/312622/110572
Description:  WPSE Shortcode check
Version:      1.0.0
Author:       Fayaz Ahmed
Author URI:   https://www.fayazmiraz.com/
*/

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99 );
add_filter( 'the_content', 'shortcode_unautop', 100 );
function wpse312622_html_comment( $attr, $content = "" ) { 
    return $content;
}   
add_shortcode( 'comment', 'wpse312622_html_comment' );

次に、以下のようにHTML/TEXTモードで[comment]ショートコードを使用します。

Some Content
[comment]
<!--
This is
<div> comment!</div>
OK -->
[/comment]
Some other content.

ビジュアルモードでは、あなただけが表示されます。

Some Content
[comment]
[/comment]
Some other content.

しかし、それは保存やモード変更を打破しません。

1
Fayaz