안녕하세요. 해결이 잘 안되는 질문이 2가지 있네요..ㅠ
현재 자식테마를 사용하고 있습니다. 그리고 이 테마의 부모테마에서 meta tag를 만드는 add_action을 사용하고 있습니다.
1. 첫번째 질문 : 이 meta tag를 생성하는 add_action을 제거하려합니다.
부모테마의 특정 php 안에,
if ( ! function_exists( 'aaa_social_meta' ) && ! function_exists( 'wpseo_activate' ) ) {
function aaa_social_meta() {...(생략)
}
add_action( 'wp_head', 'aaa_social_meta' );
}
의 내용이 있습니다. 그래서 자식테마의 functions.php 안에 아래의 내용을 추가했는데 제거가 안되네요.ㅠ(캐쉬 등을 삭제했음)
add_action( 'wp_head', 'remove_my_action' );
function remove_my_action(){
remove_action( 'wp_head', 'aaa_social_meta');
}
이렇게 넣었는데 meta tag 가 제거가 안되네요...ㅠ
2. 두번째 질문 : 위에서 meta tag 생성하는 액션을 전면페이지(home)와 특정페이지(page id=1111)에서만 제거하려 합니다.
if ( $query->is_home() || $query->set( 'page_id', '1111')) {
add_action( 'wp_head', 'remove_my_action' );
function remove_my_action(){
remove_action( 'wp_head', 'aaa_social_meta');
}
}
이 경우, if 절의 조건문을 저렇게 넣고 하면되나요?(1의 1번이 실행된다는 가정하에서)
감사합니다.
안녕하세요.
아래 코드를 테마의 functions.php 파일에 추가해보시겠어요?
add_action('init', 'remove_my_action');
function remove_my_action(){
global $post;
if(is_home() || $post->ID == '1111'){
function jas_claue_social_meta(){
return;
}
}
}
고맙습니다.
자식테마 functions.php에 넣었는데, remove_action() 가 역시나 안먹히네요..ㅠ
테마 개발사 측에 문의하니,
add_action( 'wp_head', 'remove_my_action' );
function remove_my_action(){
remove_action( 'wp_head', 'aaa_social_meta');
}
을 넣는 대신, 아래의 코드를 넣으라고 해서 아래의 코드를 넣었습니다.
function aaa_social_meta() { return; }
그랬더니, meta tag가 생성되지 않더군요.
그래서, 이제 전면 페이지와 특정페이지(page-id='1111')에만 meta tag가 생성되지 않게 하려고 아래의 코드를 자식테마의 functions.php에 넣었더니, 실행이 안되네요. 무엇이 잘못될 걸까요?ㅠ
function my_meta_del() {
global $post;
if(is_home() || $post->ID == '1111'){
function jas_claue_social_meta() { return; }
}
}
my_meta_del();
선생님, 답변 감사합니다.
집에들어가는대로 적용해 보겠습니다.
다시한번 감사합니다. 즐거운 주말되세요~
안녕하세요.
remove_action() 함수 사용 방법은 정상인 듯 보입니다.
어느 파일에 아래 코드를 추가하셨는지는 모르겠지만
add_action( 'wp_head', 'aaa_social_meta' );
remove_action( 'wp_head', 'aaa_social_meta'); 이 코드보다 먼저 add_action() 함수가 실행되어야 합니다.
호출 순서의 문제일 수 있으니 점검 해보세요~
remove_action() 함수 설명은 아래 링크를 확인해주세요.
https://developer.wordpress.org/reference/functions/remove_action/
전면 페이지 또는 특정페이지(page id=1111)에서 코드를 실행하시려면 아래 코드를 참고해주세요.
global $post;
if(is_home() || $post->ID == '1111'){
// 코드 실행
}
is_home() 함수 설명은 아래 링크를 확인해주세요.
https://developer.wordpress.org/reference/functions/is_home/
고맙습니다.