클래식 에디터로 더 이상 강제 게시가 안 됩니다?

새로운 WordPress 블록 기능을 도입하지 않고 클래식 편집기를 계속 사용할 예정입니다.

WP Discourse 플러그인이 제가 사용하는 Force Publish 설정에 대해 업데이트가 있다는 것을 방금 알게 되었습니다:

이 설정은 블록 편집기를 사용하여 게시물을 게시할 때만 적용됩니다.

아쉽지만, 의지가 있으면 길이 있습니다. 이 문제에 부딪혀 커스텀 솔루션을 찾은 분이 있을까요? 아마 테마의 낡은 functions.php 파일에 추가할 수 있는 것이 있을까요?

감사합니다

안녕하세요 @oopsyscoops, 네, 두 에디터를 모두 지원하는 데에는 몇 가지 제한 사항이 있습니다. 기존 에디터에서는 “자동 게시” 설정을 계속 사용할 수 있습니다. 해당 설정을 사용하시면서 문제가 발생하고 계신가요?

**자동 게시(Auto Publish)**는 단일 사용자 블로그라면 괜찮을 것입니다.

하지만 다수 작성자 블로그에서는 **강제 게시(Force Publish)**가 매우 유용했습니다.

변경 이력을 뒤져보기 전에, WP Discourse의 어떤 버전에서 이 기능이 블록 편집기로 이동하고 클래식 편집기에서 제거되었는지 혹시 아시는 분 계신가요?

그 버전으로 롤백하자는 건 아닙니다(그것은 정말 나쁜 아이디어일 테니), 하지만 제 테마를 통해 코드를 살펴보고 기존 해결책을 다시 적용해 볼 수도 있을 것 같습니다.

WP Discourse가 결국 클래식 편집기를 완전히 포기하지 않기를 바랍니다. 클래식 편집기를 여전히 사용하는 웹사이트가 600만 개 이상(검증 가능한 수치이며, 실제로는 더 많을 가능성이 큼)이고, 수백만 명이 클래식 기능을 계속 사용할 것이라고 확신합니다.

저도 그렇게 할 의향이 있으며, 수요가 명확해지면 몇 년이 지나도 일부 사용자는 여전히 클래식을 선호하며 새로운 블록 기능을 채택하지 않을 것이라는 점이 인식될 때, 클래식 기능이 WP에서 공식적으로(또는 선택적으로) 다시 지원(플러그인에 의존하지 않는 방식)되리라 예상합니다.

말씀하신 내용은 잘 이해합니다. 하지만 이는 작성자 교육의 문제일 수 있으며, 실제 사용 시 문제가 발생하는지 확인해 보는 것도 방법입니다. 작성자분들을 저보다 더 잘 알고 계시겠지만, 그 옵션을 무시할 수는 없다고 생각합니다.

클래식 편집기는 여전히 확실하게 지원되고 있습니다.

그렇게 되리라고는 의심스럽지만, 과거에도 틀린 적이 있습니다(제가 아는 한 최소 3번 정도 :wink: ).

@simon이 이를 제거할 때 해결하고자 했던 문제들(예: 여기 참조)을 해결할 수 있다면 PR을 환영합니다. 그가 더 자세히 설명해 줄 수 있을 것입니다.

솔직히 현실적이지 않습니다. 저는 10년 넘게 편집자로 일해 왔으며, 완전한 기술 무지(루디티즘)부터 코더까지 다양한 기술 수준을 가진 수십 명의 작가들을 교육하고 관리해 왔습니다. 제가 제시한 모든 가이드라인을 (고통 없이) 따를 수 있을 정도로 기술에 밝고 조직적이며, 동시에 좋은 글쓰기 실력을 갖춘 작가는 손에 꼽을 정도였습니다.

더 엄격한 편집자가 될 수도 있습니다(솔직히 저는 이미 좀 OCD 기질이 있긴 합니다). 하지만 그렇게 하면 소중한 목소리들을 잃게 될 것입니다. 지난 몇 년간 기여해 온 훌륭한 작가들 중에는 컴퓨터 켜는 법조차 거의 모르는 분들이 많았습니다. 그중 많은 분들이 워드프레스로 게시하는 법을 배우는 것만으로도 학습 곡선이 가팔랐으며, 차라리 워드 문서를 이메일로 보내주면 좋겠다고 말하곤 했습니다. :squinting_face_with_tongue:

그래서 저는 최선을 다해 교육하지만, 결국 자동화가 정신 건강(정신적 안정)을 지킨다고 생각합니다.

아무튼, 이 기능이 Classic 에디터와 Block 에디터 모두에서 유지보수가 너무 어려운 이유에 대해 더 알고 싶습니다. @simon 님, 간단히 요약해 주실 수 있을까요? 참고로, 저는 한 프로젝트에서 팀원들이 Classic 에디터를 사용하는 동안 Block 에디터를 사용하길 고집하는 파트너가 있어서, 두 가지를 혼용하는 경험은 조금 있습니다. 그래서 그게 얼마나 번거로운지 잘 압니다.

감사합니다

네, 강제 게시 옵션이 두 편집기 모두에서 작동하도록 하는 것이 좋겠습니다. 제가 마지막으로 이 문제를 확인한 지는 몇 년이 지났습니다. 문제의 원인이 무엇이었는지는 정확하지 않지만, 해결할 수 있는 문제라고 생각합니다.

자, 이 파일을 보고 있습니다:

/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 ) {

그리고 다음과 같은 추가 줄이 삽입되었습니다:

// The Force Publish setting can't be easily supported with both the Block and Classic editors. The $is_rest_request
// variable is used to only allow the Force Publish setting to be respected for posts published with the Block Editor.
$is_rest_request = defined( 'REST_REQUEST' ) && REST_REQUEST;

추측하자면, 아마도 기존 방식이 블록 에디터에서 오류를 일으켰던 것 같습니다. 그렇다면 조건문을 사용하는 것만으로 해결될 수 있을까요?

is_block_editor 또는 use_block_editor_for_post가 작동할 수 있을 것 같습니다:

if ( is_block_editor() ) {
	// do it the new way
} else {
	// do it the old way
}

PR을 만들어서 시도해볼래요?

만약 저에게 말씀하시는 거라면, @simon이 왜 처음에 제거되었는지 기억해내거나(또는 다시 그 과정을 추적해서 그게 뭔지 알아내지 않는 한) 저는 무모하게 진행하지 않을 겁니다. WordPress, Discourse, 또는 WP Discourse의 코어와 관련된, 단순히 이 몇몇 파일과 코드 라인으로 한정되지 않는 알려지지 않은 악몽 같은 문제일 수도 있으니까요.