inc2734 / mw-wp-form

69 stars 46 forks source link

Update class.exec-shortcode.php #92

Closed g-reate closed 5 years ago

g-reate commented 5 years ago

自動改行対応

inc2734 commented 5 years ago

91

プルリクありがとうございます!

ちょっと気になったところをまとめてみます。

inc2734 commented 5 years ago

なのでまとめるとこんな感じでしょうか…。

global $post;

$has_wpautop = false;

if ( function_exists( 'use_block_editor_for_post' ) && use_block_editor_for_post( $post ) ) {
    $has_wpautop = true;
} elseif ( function_exists( 'is_gutenberg_page' ) ) {
    $has_wpautop = true;
} elseif ( has_filter( 'the_content', 'wpautop' ) ) {
    $has_wpautop = true;
}

動作テストしていただけると助かります!

g-reate commented 5 years ago

なるほど……。了解しました。 検証してまた報告します!

g-reate commented 5 years ago

そういえば…… 以前上記コードで検証したら、ブロックエディタで改行が効かなかったんですよね……。 先程再検証したのですが、やはりWP5のブロックエディタで改行されません。

プルリクで送ったコードだと、ちゃんと改行されます。

inc2734 commented 5 years ago

なんと! Gutenberg 用の is_gutenberg_page について、functions_exist でのチェックだけして is_gutenberg_page を実行させてないのは実行タイミング的に正しい値が帰ってこなかったからなのですが、ブロックエディター用の use_block_editor_for_post でも同じような問題があるのかもですね…。

ちょっとこちらでも試してみます。

inc2734 commented 5 years ago

試してみました! use_block_editor_for_post() は管理画面用の関数みたいで、表側では使えなかった(定義されてない)ので、別な方法がないかなと探したところ、

https://github.com/WordPress/WordPress/blob/master/wp-includes/blocks.php#L239-L275

で僕がやろうとしていたことと似たような処理をしていたので、それに乗っかる形で修正してみました。僕の方で軽く動作テストしたところ問題なさそうでしたが、念の為 @g-reate さんのほうでも試してみていただけると助かります。

g-reate commented 5 years ago

検証したところ問題なさそうでしたー! 答えはやっぱりコアにあるんだな……。

inc2734 commented 5 years ago

検証ありがとうございます!マージしたらリリースしますね