クラシックエディターで強制公開できなくなりましたか?

WordPress の新しいブロック機能は採用せず、クラシックエディターを使い続けるつもりです。

先日、使用している設定であるForce Publishのアップデートが WP Discourse プラグインにあったことに気づきました。

この設定は、ブロックエディターを使用して投稿を公開する場合にのみ適用されます。

残念ですが、意志あるところに道は開けます。この問題に直面し、カスタムソリューション、例えばテーマの functions.php ファイルに追加できるようなものを思いついた方はいらっしゃいますか?

よろしくお願いします。

「いいね!」 3

@oopsyscoops様、はい、両方のエディターをサポートするにはいくつかの制限があります。クラシックエディターで「自動公開」設定を使用することは引き続き可能です。お客様の場合、それを使用する際に問題がありますか?

「いいね!」 2

自動公開は、シングルユーザーブログであれば問題ありません。

しかし、マルチライターブログとしては、強制公開が非常に役立ちました。

変更履歴を調べる前に、WP Discourseのどのバージョンでこの機能がブロックエディターに移動され、クラシックエディターから削除されたか、ご存知でしょうか?

そのバージョンにロールバックするつもりはありません(それはひどい考えでしょうが)、コードを調べて、テーマを通じて古いソリューションをパッチで元に戻すことができるかもしれません。

WP Discourseが最終的にクラシックを完全に放棄しないことを願っています。600万以上(確認済みですが、おそらくもっと多い)のウェブサイトがまだクラシックを使用しており、何百万人もの人々が今後もクラシック機能を無期限に使用し続けることは間違いありません。

私はそうするつもりですし、クラシック機能は、需要が明確になったときに、たとえ数年経っても一部の人々が単にクラシックを好み、新しいブロック機能を採用しないことを彼らが認識したときに、最終的にWPで(プラグインに依存せず)公式に(そしてオプションで)サポートされるようになるだろうと推測しています。

「いいね!」 2

おっしゃることは理解できますが、これは単にライターのトレーニングと、実際に問題が発生するかどうかを確認するだけで済むのではないでしょうか? あなたは私よりもライターのことをよく知っていますが、それを選択肢として除外するべきではないと思います。

クラシックエディターは引き続き確実にサポートされています。

そうは思いませんが、以前は間違っていたことがあります(少なくとも私が知っている限り3回は ;))。

もしあなたが、@simon が削除しようとしていた問題(例えば、https://github.com/discourse/wp-discourse/blob/main/lib/discourse-publish.php#L107 を参照)に対処できるのであれば、プルリクエスト(PR)を歓迎します。彼はもっと詳しく説明してくれるかもしれません。

「いいね!」 3

現実的に不可能です。私は10年以上編集者をしており、全くの時代遅れな人からコーダーまで、あらゆるスキルレベルのライターを数十人トレーニングし、管理してきました。私が定めたガイドラインをすべて(苦労することなく)守れるほど、技術に精通し、かつ整理整頓ができる優れたライターはほんの一握りしかいませんでした。

より厳格な編集者になることもできますが(私はすでにかなりの強迫観念を持っています)、そうすると貴重な意見を失ってしまいます。長年にわたり貢献してくれた素晴らしいライターの中には、コンピューターの電源の入れ方さえほとんど知らなかった人もたくさんいます。彼らの多くは、WordPressでの公開方法を学ぶだけでも学習曲線があり、私にWord文書を送るだけで済むならと言っています。:squinting_face_with_tongue:

だから、できる限りトレーニングしますが、結局のところ、自動化こそが正気なのです。

とにかく、この機能がClassicとBlockの両方で維持するのがなぜそれほど難しいのか、簡単に要約していただければ、@simonさん、ぜひ詳しく知りたいです。ちなみに、プロジェクトのパートナーの一人が、チームの他の全員がClassicエディターを使用しているにもかかわらず、私にBlockエディターの使用を許可するように主張しているので、両方を混在させる経験はありますし、それがどれほど面倒になるかは理解しています。

ありがとうございます。

「いいね!」 3

はい、Force Publishオプションが両方のエディターで機能するようになると素晴らしいでしょう。最後にこれを確認してから数年経ちました。問題の原因は定かではありませんが、解決できるものだと疑っています。

「いいね!」 3

このファイルを見ています。

/lib/discourse-publish.php

2.1.2 と 2.1.3 を比較したところ、Force Publish に関する変更点は以下の通りです。

if ( ( 0 === $force_publish_max_age ) || $post_time >= $min_date ) {

が以下のように変更されました。

if ( ( ( 0 === $force_publish_max_age ) || $post_time >= $min_date ) && $is_rest_request ) {

そして、これらの行が追加されました。

// Force Publish 設定は、ブロックエディターとクラシックエディターの両方で簡単にサポートできません。$is_rest_request
// 変数は、ブロックエディターで公開された投稿に対してのみ Force Publish 設定が尊重されるようにするために使用されます。
$is_rest_request = defined( 'REST_REQUEST' ) && REST_REQUEST;

推測ですが、古い方法ではブロックエディターでエラーが発生していたのでしょうか? では、条件分岐を使用するだけで十分でしょうか?

is_block_editor または use_block_editor_for_post が機能するかもしれません。

if ( is_block_editor() ) {
    // 新しい方法で実行
} else {
    // 古い方法で実行
}
「いいね!」 1

試してみませんか? PRを作成しますか?

「いいね!」 1

もし私に話しかけているのであれば、@simon がそもそもなぜそれが削除されたのかを思い出さない限り、あるいはそれをもう一度学ぶために自分の手順をたどらない限り、私は決して「銃をぶっ放して」入ることはありません。それはWordPress、Discourse、あるいはWP Discourseのコアに関わる未知の悪夢である可能性があり、これらの数個のファイルやコード行に限定された問題ではないかもしれません。