특정 페이지/게시용 Wordpress 플러그인 비활성화
특정 페이지에서 플러그인(액티브한 것)을 비활성화하는 정말 효과적인 방법을 알고 있는 사람이 있습니까?웹 사이트의 일부 페이지에는 실제로 필요하지 않은 플러그인이 있으며 웹 사이트의 로드 속도를 늦추거나 다른 파일과 충돌할 수 있는 CSS 및 JavaScript 파일이 많이 포함되어 있습니다.
플러그인의 코드등을 조작할 수 있는 것은 알고 있습니다만, 별로 효과가 없습니다.
좋은 생각 있어요?
잘 부탁드립니다!
아이디어는 이렇습니다.
add_filter( 'option_active_plugins', 'lg_disable_cart66_plugin' );
function lg_disable_cart66_plugin($plugins){
if(strpos($_SERVER['REQUEST_URI'], '/store/') === FALSE && !is_admin() ) {
$key = array_search( 'cart66/cart66.php' , $plugins );
if ( false !== $key ) unset( $plugins[$key] );
}
return $plugins;
}
p.s. 어떤 사람들은 당신이 이걸 넣어야 한다고 말한다.mu-plugins
폴더입니다.
오래된 건 알지만 이 실이 바로 내가 필요했던 거야.
numediaweb의 답변에 대한 유일한 경고는 제거 작업이 추가 작업과 동일한 우선 순위를 필요로 한다는 것입니다.
플러그인의 후크
add_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
add_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts', 999);
add_action('wp_head', 'easy_fancybox', 999);
후크 제거 코드
function remove_easy_fancybox() {
global $post;
$ids = array(12,34,55);
if(in_array($post->ID,$ids)):
remove_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
remove_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts',999);
remove_action('wp_head', 'easy_fancybox', 999);
wp_dequeue_script( 'jquery.fancybox' );
wp_dequeue_script( 'jquery.easing' );
wp_dequeue_script( 'jquery.mousewheel' );
wp_dequeue_script( 'jquery.metadata' );
endif;
}
add_action('wp_head', 'remove_easy_fancybox', 1);
http://codex.wordpress.org/Function_Reference/remove_action 에서
중요:후크를 삭제하려면 후크 추가 시 $function_to_remove 인수와 $priority 인수가 일치해야 합니다.이는 필터와 액션 모두에 적용됩니다.제거 실패 시 경고가 표시되지 않습니다.
도움이 될 수 있다고 생각하여 특정 포스트 ID에서만 작업을 수행하기 위한 if 문을 포함했습니다.
먼저 제거할 플러그인에 제외할 페이지를 설정하는 옵션 메뉴가 없는지 확인합니다.
둘째, 다음 예에 대한 플러그인 액션 후크를 찾습니다.
add_action('wp_head', 'easy_fancybox', 999);
이것은 워드프레스 헤더에 후크하는 쉬운 팬시박스 플러그인 예시입니다.이 기능을 제거하기 위해, 저는 이 기능을 당신의 시스템에 넣었습니다.functions.php
그리고 그 전에wp_head();
라고 부릅니다.
function remove_easy_fancybox() {
remove_action('wp_head', 'easy_fancybox_enqueue_styles');
remove_action('wp_head', 'easy_fancybox_enqueue_scripts');
remove_action('wp_head', 'easy_fancybox');
wp_dequeue_script( 'jquery.fancybox' );
wp_dequeue_script( 'jquery.easing' );
wp_dequeue_script( 'jquery.mousewheel' );
wp_dequeue_script( 'jquery.metadata' );
}
add_action('wp_head', 'remove_easy_fancybox', 1);
프리 플러그인 Freesoul Deactivate Plugins를 사용하여 특정 페이지, 게시물, 커스텀 게시물 및 아카이브의 특정 플러그인을 비활성화할 수 있습니다.설정 페이지는 매우 간단합니다.
언급URL : https://stackoverflow.com/questions/6774424/wordpress-disable-plugin-on-specific-pages-posts
'programing' 카테고리의 다른 글
패브릭 JS _ updateObjectsCoords 대체 ? (1.7.9로의 이행 문제) (0) | 2023.02.07 |
---|---|
Wordpress 테마를 "잘못된 상위 테마"로 만드는 이유는 무엇입니까? (0) | 2023.02.07 |
WP_Post 객체에서 제목을 얻는 방법 (0) | 2023.02.07 |
WordPress wp_insert_post가 태그를 삽입하지 않음 (0) | 2023.02.07 |
WordPress를 사용한 와일드카드 도메인 리디렉션 (0) | 2023.02.07 |