하위 테마에서 Wordpress 테마 옵션을 제거하는 방법
저는 20대 청소년 테마를 위한 어린이 테마를 쓰면서 새로운 프로젝트를 시작합니다.새로운 테마는, 20대 테마에 짜넣어져 있는 옵션(배경색등)을 사용하는 경우는 거의 없습니다.그 잔존 옵션은 별로 해가 되지 않지만, 아무것도 하지 않기 때문에 없애고 싶습니다.
문제는 테마 옵션이 상위 테마의 functions.php에 선언되어 하위 테마의 함수와 함께 로드된다는 것입니다.php 파일(삭제할 수 있지만 다음 업그레이드에서 다시 돌아올 것입니다)
자녀 테마에서 이러한 테마 옵션을 제거하거나 비활성화할 수 있는 방법이 있습니까?"remove_options()" 함수의 행에 따라 다른 것이 있습니까?아니면 그 효과를 얻을 수 있는 무언가가 있을까요?즉, teme_options를 추가한 원래 함수를 삭제하거나 덮어쓰지 않고 삭제할 수 있는지 여부가 문제입니다.
퍼팅이 충분하면 CSS나 Javascript로 옵션을 숨길 수 있을 것 같은데...하지만 어서요.
두 번째 파헤친 후에...
이건 정말 쉬워요!
여기서부터 제 단계를 다시 추적할 수 있지만, 코드는 매우 명확합니다.
add_action( 'init', 'remove_crap' );
function remove_crap() {
remove_custom_image_header();
remove_custom_background();
remove_theme_support('post-formats');
}
이치노remove_theme_support는 (포맷 후뿐만 아니라) 다양한 옵션을 식별하는 여러 문자열 중 하나를 사용합니다.제가 유일하게 접한 문제는 훅에서 호출해야 한다는 것입니다(단순히 functions.php는 phphp php 、 php php 、 php php php php 。하고 init
더 적절한 방법이 있을 거예요
제가 아직 파악하지 못한 유일한 것은 외관 아래에 표시되는 "테마 옵션" 페이지 링크를 삭제하는 방법입니다.추가되어 있는 것을 알고 있어요.add_theme_page()
게 것 요.remove_theme_page()
.
업데이트: 찾았어요!이는 문서화되어 있지 않지만, 결국 다음과 같은 작업을 쉽게 수행할 수 있습니다.
add_action('admin_init', 'remove_twentyeleven_theme_options', 11);
function remove_twentyeleven_theme_options() {
remove_submenu_page('themes.php', 'theme_options');
}
제 예에서는 '테마'입니다.php'는 [Affarences]메뉴를 대상으로 하고, [teme_options]는 20대 테마에서 사용되는 menu_slug입니다.이러한 파라미터는 편집하는 메뉴 또는 서브메뉴에 따라 달라집니다.이 페이지를 통해 올바른 방향을 알 수 있습니다.
ps: 사용하고 싶지 않은 부모 테마에서 템플릿을 삭제하는 방법은 다음과 같습니다.이것은 제 질문에 꼭 필요한 것은 아니지만, 제가 하고 있는 일을 하려고 하는 모든 사람에게 매우 밀접하게 관련되어 있기 때문에 도움이 될 것입니다.
부모테마에서 추가된 테마지원을 자녀테마에서 삭제하는 올바른 방법은 부모테마보다 낮은 우선순위로 호출된 after_setup_theme 액션에서 remove_theme_support를 호출하는 것입니다.
그 기능들.자녀테마의 php 파일은 부모테마의 priority 직전에 호출되므로 after_priority를 after_priority로 사용하면 자녀의 after_priority가 부모테마의 priority보다 먼저 호출되므로 존재하지 않는 테마 지원은 결국 자녀테마의 per_set을 실행하고 있는 부모테마에서 다시 추가되게 됩니다.up_module을 클릭합니다.
따라서 하위 작업을 낮은 우선순위로 추가하면 부모 호출 후 동일한 작업으로 호출되도록 할 수 있습니다.
그래서:
// added to child's functions.php
add_action( 'after_setup_theme', 'child_after_setup_theme', 11 );
// Parent theme uses the default priority of 10, so
// use a priority of 11 to load after the parent theme.
function child_after_setup_theme()
{
remove_theme_support('custom-background');
remove_theme_support('custom-header');
remove_theme_support('post-formats');
// ... etc.
}
twentyleven 테마의 경우 twentyleven_setup 함수 전체를 덮어쓸 수도 있습니다.php. 하지만 이것은 꽤 이해하기 어려운 방법입니다.
유감스럽게도 Wordpress의 경우 테마 상속은 부모 테마 기능에 하위 테마 기능이 "추가"되어 있을 뿐입니다.
style.css와 달리 함수는 다음과 같습니다.하위 테마의 php는 상위 테마의 상대 테마를 덮어쓰지 않습니다.대신 부모의 functions.php.와 함께 로드됩니다.(구체적으로는 부모의 파일 바로 앞에 로드됩니다.) (1)
따라서 위의 질문에 대한 직접적인 답변(2) WordPress가 테마와 하위 테마를 처리하는 방법으로는 불가능할 수 있습니다.
저는 개인적으로 그 추가 기능이나 변수를 함수에 포함시키는 것에 대해 걱정하지 않습니다.php 파일.
- http://codex.wordpress.org/Child_Themes
- http://wordpress.org/support/topic/theme-options-in-child-theme
이것은 오래된 스레드이기 때문에, 만약 누군가가 이 장소에 들어가 답변을 원한다면 덧붙이고 싶습니다.저는 그 파일을 복사해서 아이 테마에 추가함으로써 아이 테마를 해결합니다."advanced code editor"라는 플러그인이 있기 때문에 FTP에 접속할 필요가 없습니다.편집할 특정 파일을 복사하고 이름과 내용이 동일한 하위 테마에서 새 시트를 만든 다음 원하는 편집을 수행합니다.먼저 하위 테마 파일을 가져오고 사이트가 업데이트됩니다.
언급URL : https://stackoverflow.com/questions/8994887/how-to-remove-wordpress-theme-options-from-child-theme
'sourcecode' 카테고리의 다른 글
서브슬라이밍 텍스트용 JSX 포메터가 있나요? (0) | 2023.02.22 |
---|---|
mongodb에 날짜/시간을 저장하는 가장 좋은 방법 (0) | 2023.02.22 |
'가 Angular 컴포넌트인 경우 이 모듈의 일부인지 확인합니다. (0) | 2023.02.15 |
스프링 부츠를 사용한 심플한 임베디드 Kafka 테스트 예시 (0) | 2023.02.15 |
스프링: @ResponseBody "ResponseEntity"를 반환합니다. (0) | 2023.02.15 |