bojaghi / clean-pages
워드프레스 플러그인에서 테마와 완전히 무관한 빈 페이지를 운영하게 도와줌니다.
1.0.1
2025-05-06 21:17 UTC
Requires
- php: >=8.0
- bojaghi/contract: ^1.1
- bojaghi/helper: *
Requires (Dev)
- bojaghi/wp-tests: ^1.1
- phpunit/phpunit: ^9
- yoast/phpunit-polyfills: ^4.0
README
워드프레스 플러그인에서 테마와 완전히 무관한 빈 페이지를 운영하게 도와줌니다.
사용법
아래처럼 설정 배열을 입력하거나,
use Bojaghi\CleanPage\CleanPage new CleanPage([ /* 설정 배열 */ ]);
설정을 리턴하는 파일 경로를 입력하세요.
use Bojaghi\CleanPage\CleanPage new CleanPage('/path/to/configuration');
객체는 add_action(), add_filter()의 콜백 함수에서 생성하지 말고 플러그인의 초기화 코드에 그냥 넣어주세요. 왜나면 CleanPage 클래스가 'init' 또는 다른 액션을 사용할 수 있기 때문입니다.
/** * Plugin Name: My Plugin */ if (!defined('ABSPATH')) { exit; } require_once __DIR__ . '/vendor/autoload.php'; // 올바른 예 $cleanPage = new Bojaghi\CleanPage\CleanPage('/path/to/config'); // 권장하지 않는 예 add_action( 'init', function () { $cleanPage = new Bojaghi\CleanPage\CleanPage('/path/to/config'); });
설정법
아래는 설정 파일의 예시입니다.
if (!defined('ABSPATH')) { exit; } return [ [ 'name' => 'my-name', 'condition' => function (string $name): bool {}, 'template' => function (string $name, mixed $body = null) {}, 'before' => function (string $name) {}, 'body' => function (string $name) {}, 'after' => function (string $name) {}, ], /* ... */ 'priority' => 9999, ];
배열 안에 연관배열로 템플릿을 제어합니다. 연관배열은 다음과 같은 키와 값을 가집니다.
- name: 필수. 유일한 문자열을 지정해 주십시오.
- condition: 필수. 콜백 함수를 지정합니다. 이 함수는 템플릿을 사용할지 아닐지를 결정합니다. 불리언을 리턴해야 합니다.
- template: 옵션. 콜백 함수를 지정합니다. 'condition'에 지정한 콜백 함수가 참을 리턴할 경우 사용할 템플릿입니다. 이 값이 콜백 함수라면 호출됩니다. 함수 내에서 적절한 템플릿을 직접 출력해야 합니다. 첫번째 파라미터는 'name' 값입니다. 이 값이 문자열이면 템플릿 경로로 간주하고 인클루드 합니다. 이 값이 생략하면 기본값이 사용됩니다.
- before: 옵션. 'template'이 동작하기 전에 호출되는 함수입니다.
- after: 옵션. 'template'이 동작한 후 호출되는 함수입니다.
- body: 옵션. 기본 템플릿이 사용되는 경우, 이 값이 사용됩니다. body 태그가 열리고 바로 호출됩니다.
이 배열에 허용되는 키-값은 다음과 같습니다.
- exit: 불리언입니다. 조건에 맞는 항목을 렌더링한 후 바로 종료합니다. 기본값은 true 입니다.
- priority: CleanPages가 사용하는 'template_redirect' 액션 콜백의 우선순위를 지정합니다. 기본값은 9999입니다.
- show_admin_bar: 페이지에서 어드민 바를 노출할지 결정합니다. 기본값은 false 입니다.
기본 템플릿의 액션과 필터
기본 템플릿은 CustomPages::callbackTemplate
메서드에서 찾을 수 있습니다.
여기서 정의된 액션과 필터는 다음과 같습니다.
- 액션: 모두 name을 첫번째 인자로 받습니다.
- bojaghi/clean-pages/head/begin: head 태그 시작 부분
- bojaghi/clean-pages/head/end: head 태그 종료
- bojaghi/clean-pages/body/begin: body 태그 시작 부분
- bojaghi/clean-pages/body/end: body 태그 종료 부분
- 필터: 2개의 인자를 받습니다. 첫번째는 필터될 내용, 두번재는 name입니다.
- bojaghi/clean-pages/body/class: body 클래스 필터