“Page Builder Sandwich로 편집” 버튼이 나타나지 않습니다
사이트의 프런트엔드에서 “Page Builder Sandwich로 편집” 버튼이 표시되지 않는 경우, 다음 방법들을 시도해 볼 수 있습니다:
관리자 표시줄이 표시되는지 확인하세요
PB Sandwich의 편집 버튼은 프런트엔드의 관리자 표시줄에서 사용할 수 있습니다. 관리자 화면으로 이동하여 사용자 > 나의 프로필로 이동한 다음 사이트를 볼 때 툴바 표시 확인란이 선택되어 있는지 다시 한번 확인하여 관리자 표시줄이 표시되도록 설정하세요.

페이지, 글 또는 커스텀 포스트 타입에 있는지 확인하세요
프런트엔드에서는 글, 페이지 및 커스텀 포스트 타입만 편집할 수 있습니다. 백엔드의 WordPress 콘텐츠 편집기를 사용하여 편집할 수 있는 항목만 프런트엔드에서 편집할 수 있습니다. 사이트의 다른 영역(예: 블로그 글 첫 페이지 목록, 전체 블로그 글 목록, 카테고리 목록, 404 페이지, 검색 페이지)은 사용 중인 테마와 함께 WordPress에서 생성한 동적 페이지이므로 PB Sandwich를 사용하여 편집할 수 없습니다.
현재 웹페이지를 편집할 수 있는지 알 수 있는 한 가지 지표는 관리자 표시줄에 “글 편집” 또는 “페이지 편집”이 표시되는지 확인하는 것입니다.
콘텐츠가 테마나 플러그인에 의해 동적으로 생성되지 않았는지 확인하세요
페이지/글이 테마나 플러그인에 의해 동적으로 생성된 경우 Page Builder Sandwich(및 대부분의 다른 페이지 빌더에서도)로 편집할 수 없습니다. 백엔드의 콘텐츠 편집기는 비어 있지만 프런트엔드에서 페이지를 보면 콘텐츠가 가득 차 있다면 페이지가 동적으로 생성되었음을 나타내는 좋은 지표입니다.
페이지가 동적으로 생성되었는지 확인하려면 웹페이지의 소스를 봅니다(마우스 오른쪽 버튼 클릭 후 “페이지 소스 보기” 선택). “pbs-main-wrapper” 텍스트를 검색했을 때 해당 텍스트를 어디에서도 찾을 수 없다면 페이지가 동적으로 생성된 것입니다.
다음은 동적으로 생성된 콘텐츠의 몇 가지 예입니다:
- 사용자 정의하기를 사용하여 추가/편집하는 여러 위젯으로 페이지가 구성된 경우,
- “원페이지” 테마에 의해 여러 페이지가 하나로 합쳐져 페이지가 구성된 경우(이 경우 개별 페이지는 편집할 수 있지만 결합된 페이지는 편집할 수 없음), 또는
- 페이지가 최신 블로그 글로 구성된 경우.
먼저 내용을 조금 추가해 보세요
콘텐츠가 비어 있는 경우 테마가 콘텐츠를 전혀 표시하지 않아 PBS가 페이지를 편집할 수 없다고 잘못 판단하는 경우가 있었습니다. 이런 경우인지 확인하려면 백엔드 편집기에서 페이지/글을 편집하고 콘텐츠에 아무 텍스트(예: “hello”)나 추가해 본 다음, 거기에서 “Page Builder Sandwich로 편집” 버튼을 클릭해 보세요.
이 팁을 알려주신 Mathias Hellquist님께 감사드립니다!
페이지가 다른 페이지 빌더에 의해 “점유”되지 않았는지 확인하세요
일부 페이지 빌더는 WordPress의 기본 콘텐츠 편집기를 사용할지, 페이지 빌더 자체 편집기를 사용할지 선택하도록 합니다. 이미 다른 페이지 빌더를 사용하여 페이지를 편집한 경우 해당 페이지 빌더가 이미 콘텐츠를 “소유권 주장”하여 다른 콘텐츠 훅/필터가 더 이상 실행되지 않을 수 있습니다. 이 때문에 때때로 Page Builder Sandwich가 콘텐츠의 위치를 감지하지 못하고 편집할 내용이 없기 때문에 편집 버튼을 표시하지 않습니다.
이를 해결하려면 해당 특정 페이지/글에 대해 해당 페이지 빌더를 사용하지 않도록 설정하고, WordPress의 기본 콘텐츠 편집기를 사용하도록 선택하기만 하면 됩니다.
페이지에 대한 편집 권한이 있는지 확인하세요
페이지를 편집할 수 없는 경우 편집 버튼이 표시되지 않습니다. 예를 들어 편집자 또는 기여자인 경우 사이트에서 블로그 글과 아티클을 작성할 수 있지만, 이것이 첫 페이지나 문의하기 페이지를 편집할 수 있다는 것을 의미하지는 않습니다. 관리자 표시줄에 “글 편집” 버튼이 표시되면 PB Sandwich를 사용하여 편집할 수도 있어야 합니다. 필요한 경우 사이트 관리자에게 편집 권한을 요청하세요.
PB Sandwich의 작동을 중단시키는 자바스크립트 오류가 있을 수 있습니다
PB Sandwich는 자바스크립트를 광범위하게 사용합니다. 사이트에 있는 다른 스크립트에서 자바스크립트 오류가 발생하면 PB Sandwich의 작동이 방해받을 수 있습니다. 이런 경우인지 확인하려면 브라우저에서 개발자 콘솔을 열어 오류를 확인할 수 있습니다.
이 작업에는 Chrome을 사용하는 것을 권장합니다. 페이지의 아무 곳이나 마우스 오른쪽 버튼으로 클릭한 다음 “검사” 옵션을 클릭합니다. 그러면 브라우저 하단에 새 영역이 나타나며, “콘솔” 탭을 클릭합니다. 오류가 있는 경우 다음과 같은 내용이 표시됩니다:

오류가 있는 경우 스크립트 이름을 클릭하거나 마우스를 올려 어디에서 발생하는지에 대한 단서를 얻을 수도 있습니다:

이러한 오류는 테마나 사용 중인 다른 플러그인에서 발생할 수 있습니다. 이러한 오류를 수정하면 PB Sandwich가 다시 작동할 수 있습니다.
테마나 플러그인 중 하나로 인해 자바스크립트 오류가 발생하는 경우 [email protected]으로 이메일을 보내 알려주시면 문제를 해결하기 위해 최선을 다하겠습니다 🙂
CloudFlare를 사용하는 경우 Rocket Loader가 꺼져 있는지 확인하세요
CloudFlare는 널리 사용되는 무료 DNS CDN입니다. 훌륭한 서비스이지만, PBS는 현재 Rocket Loader 기능과 관련하여 문제가 있습니다. Rocket Loader는 자바스크립트 파일의 로드 시간을 단축하지만, PBS 스크립트의 종속성과 호출 순서를 엉망으로 만듭니다. Rocket Loader가 켜져 있으면 Page Builder Sandwich의 편집 버튼이 나타나지 않습니다(자바스크립트 콘솔 오류도 표시되지 않음).
사이트에서 CloudFlare의 Rocket Loader를 사용하고 있는지 확인하려면 웹페이지의 소스를 보고(마우스 오른쪽 버튼 클릭 후 “페이지 소스 보기” 선택), “rocketscript” 텍스트를 검색합니다. 해당 텍스트가 발견되면 Rocket Loader가 켜져 있는 것입니다.

끄는 방법에 대한 자세한 지침은 CloudFlare 및 Rocket Loader 호환성 문서를 참조하세요.
모두 시도해 보았지만 여전히 편집 버튼이 나타나지 않습니다!
좋습니다. 이 시점에서 위의 해결 방법 중 어느 것도 작동하지 않는다면 버튼이 표시되지 않는 이유와 이에 대해 무엇을 해야 하는지 설명해야 할 때일 수 있습니다. 준비되셨나요? 시작해 봅시다!
“이유” (비기술적인 용어)
Page Builder Sandwich는 페이지/글의 콘텐츠가 어디에 있는지 알아야 합니다. 우리는 WordPress가 글의 콘텐츠를 로드할 때를 감지하고 해당 영역을 “표시”하여 모든 것이 로드되었을 때 중요한 부분이 어디에 있는지 찾을 수 있도록 함으로써 이 작업을 수행합니다.
때로는 일부 플러그인이 이 프로세스를 재정의하거나 우회하여 콘텐츠를 자체적인 방식으로 로드하려고 시도합니다. 때로는 문제가 없지만 특정 시나리오, 특히 메인 글의 콘텐츠를 로드하는 경우 일부 플러그인이 작동을 멈출 수 있습니다. 다른 플러그인이 이 로딩 프로세스를 우회하면 우리가 수행한 “표시”가 손실될 수 있으며, 편집기가 시작될 때 콘텐츠가 어디에 있는지 더 이상 찾을 수 없게 됩니다. 따라서 편집 버튼이 나타나지 않는 것입니다! 또한 정확히 동일한 이유로 인해 일부 소셜 공유 플러그인과 같이 페이지에 콘텐츠를 추가하는 일부 플러그인도 작동을 멈출 수 있음을 알 수 있습니다.
“이유” (기술적인 용어)
Page Builder Sandwich는 페이지/글의 콘텐츠가 어디에 있는지 알아야 하며, the_content 필터에 후킹하고 메인 콘텐츠 주위에 래퍼(wrapper)를 추가하여 이 작업을 수행합니다. 일부 플러그인은 이를 무시하고 대신 이후 단계에서 get_the_content() 함수로 콘텐츠를 덮어쓸 수 있습니다. 안타깝게도 이렇게 하면 모든 the_content 필터가 호출되지 않으므로 PBS의 래퍼가 손실됩니다. 다른 플러그인의 변경 사항도 마찬가지로 손실됩니다.
get_the_content() 자체를 사용하는 것에는 아무런 문제가 없지만, 모든 the_content 필터가 실행되는 일반적인 the_content() 호출 대신 메인 쿼리 및 단일 포스트 템플릿 페이지 내부에서 이 함수가 사용되는 경우 부정적인 영향이 있을 수 있습니다.
해결 방법
로그인한 상태에서 프런트엔드의 페이지/글을 방문하고 페이지 소스를 확인하여 Page Builder Sandwich의 “표시”가 없는지 확인할 수 있습니다. 복잡한 코드 속에서 다음 문자열을 찾을 수 있는지 검색해 보세요:
data-name="main-content"
찾을 수 있다면 어딘가에 자바스크립트 문제가 있는 것일 수 있으므로 사용 중인 테마와 플러그인을 알려주시면 해결해 드릴 수 있습니다.
하지만 찾을 수 없다면 테마(또는 플러그인이지만 페이지나 블로그 글인 경우 대부분 테마)가 글 콘텐츠와 관련하여 무언가를 하고 있기 때문일 수 있습니다. 이 경우 테마 개발자에게 문의하여 문제에 대해 알려야 합니다! 위의 기술적인 “이유” 설명을 개발자에게 보여줄 수도 있으며, 이는 디버깅에 도움이 될 수 있습니다 🙂
PHP를 직접 다루는 데 자신이 있다면 글 콘텐츠를 처리하는 템플릿 파일을 찾아 수정을 시도해 볼 수 있습니다. 저희가 발견한 한 가지 해결책은 다음 호출을:
$content = get_the_content();
다음과 같이 바꾸는 것입니다:
ob_start(); the_content(); $content = ob_get_clean();<br>
참고: PHP 변수는 상황에 따라 다를 수 있지만 개념은 동일해야 합니다. 작동하는 경우 테마에 직접 이 변경 사항을 적용하는 대신 자식 테마를 만드는 것이 더 좋습니다. 변경으로 인해 부작용이 발생할 수도 있으므로 테마 개발자와 상의하는 것이 좋습니다.