본문 바로가기

지적자본/워드프레스

워드프레스 특정페이지 플러그인 비활성화 하기

by 디런치 2022. 9. 13.

워드프레스로 홈페이지를 운영하다보면, 플러그인을 선택적으로 활성화할 것인지 비활성화 할것인지 결정하는 기능이 필요할 때가 있다. 기본적으로 몇가지 구글링을 통해서 알아 내 본 것들이 있고 그중에 필자의 경우 적용되는 것과 그렇지 않는 것들이 있어서 소개한다.

 

1. functions.php 에 함수 추가방법

/* 특정페이지 플러그인 해제*/
 add_filter( 'option_active_plugins', 'fsm_custom_featured_image_caption' );

 function fsm_custom_featured_image_caption($plugins){

      if(strpos($_SERVER['REQUEST_URI'], '/downloads/') === FALSE AND strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === FALSE) {
         $key = array_search( 'fsm-custom-featured-image-caption/fsm-custom-featured-image-caption.php' , $plugins );
         if ( false !== $key ) unset( $plugins[$key] );
      }

     return $plugins;
 }

위의 같이 테마의 functions.php에 위의 항목을 추가하는데 "fsm_custom_featured_image_caption" 이 부분은 플로그인 함수, "fsm-custom-featured-image-caption/fsm-custom-featured-image-caption.php"이 부분은 플로그인 실행파일 "/downloads/" 이 부분은 실행하지 않을 페이지를 넣어주면 된다고 하는데 필자의 경우는 되지 않는다.

 

 

2. 플러그인을 통해 하는 방법

 

대표적으로 크게 두가지로 소개가 되고 있다. 첫번째는 'FreeSoul Deactivate Plugins - Plugin manager and cleaup'이라는 클러그인과 'Plugin Organizer'라는 플러그인이다. 필자의 경우 전자의 플러그인은 특정 몇몇 페이지에서는 작동하지만, 정확하게 작동하지 않았다. 그러나 후자의 플러그인은 간단하게 원하는 것을 해결하였다.

 

필자의 경우는 메인페이지에서는 플러그인이 작동하지만, 포스팅 페이지에서 실행되지 않도록 설정하고 싶었다.

 

먼저 플러그인 Plugin Organizer을 검색해서 설치해 준다.

 

그 후 세팅페이지에서 'Selective Plugiun Loading' 항복을 'On'으로 설정하고 'Custom Post Type Support'에서 원하는 포스팅 항목을 체크해주고 저장 버튼을 눌렀다.

 

 

플러그인 메뉴에서 'Post Type Plugins' 항목으로 들어간 후

 

상단에 Role을 'Default Logged In"으로 선택하고 하단에 나오는 플러그인 가운데 해제하고 싶은 플러그인을 선택한 후 저장 버튼을 누르면 된다. 상단의 Not Logged In을 선택하면 필자의 경우는 제대로 되지 않았다.

 

일단 이 플러그인의 경우 더 세부적으로 포스팅 가운데 특정 포스팅이나 페이지를 선택하기 위해서 필터 그룹을 만들어 더 복잡한 설정을 해주어야 하는데, 필자의 경우는 그렇게 세부적인 기능이 필요하지 않아서 위와 같이 간단하게 해결할 수 있었다.

 

반응형


댓글