사용자 정의 게시물 유형을 인스턴스화하는 플러그인을 작성 중입니다 (다른 것들 중에서도). 멀티 사이트 플러그인이며 mu-plugins 디렉토리 에 있습니다 .
이 상황에서 flush_rewrite_rules () 를 처리하는 가장 좋은 방법은 무엇입니까 ? '정상적인'플러그인의 경우 활성화 훅 에서이 작업을 수행합니다.이 훅은 사용할 수 없으므로 필수 플러그인에는 사용할 수 없습니다.
이것은 맞춤 게시물 유형을 등록한 후 "일회성"이벤트이므로 CPT를 등록하는 클래스에서 이와 같은 작업을 수행하는 것이 좋습니다.
private function check_flush_my_CPT() {
global $wp_rewrite;
if ( !get_option('my_plugin_firstrun') ) {
$wp_rewrite->init();
$wp_rewrite->flush_rules(true);
update_option('my_plugin_firstrun', 'yes');
}
}
public function register_my_CPT() {
// do all the CPT setup steps for the $args array...
register_post_type('my_CPT', $args);
$this->check_flush_my_CPT();
}
add_action( 'init', array(&$this, 'register_my_CPT' ) );
따라서 CPT 등록은 모든 '초기'작업마다 발생하지만이 권한이 있으면 다시 쓰기 규칙 플러시가 한 번만 발생합니다. 이제까지 .
내가 올바른 길을 가고 있습니까?
(편집) : 방금 시도했습니다. 내 CPT에서 404 찾을 수 없음 오류가 발생하여 다시 쓰기 규칙이 작동하지 않습니다.
(편집 # 2) :이 질문에 표시된 것처럼 전역 변수에 액세스하기위한 솔루션을 시도했습니다 . 다중 사이트에서 다시 쓰기 규칙을 안정적으로 플러시하는 방법은 무엇입니까? -이것을 보여주기 위해 위의 코드 예제를 업데이트 할 것입니다. 불행히도 CPT를로드하려고 할 때 여전히 404 오류가 발생합니다. 다시 쓰기 규칙이 데이터베이스에 저장되어 있고 사용되지 않는 것 같습니다. 나는 길을 잃었다.