답변:
Yoast SEO 플러그인 사이트의 API 문서에서 말한 내용이 무엇인지 ID
말하지 않았으며 처분 할 때 Yoast 사본을 설치하지 않았지만 yoas-plugin-dir/admin/class-metabox.php
144 행 에 따르면 meta_box가 등록되었습니다.
add_meta_box( 'wpseo_meta', ...etc ); ...
add_meta_boxes
동일한 파일의 32 행 에있는 후크에 연결되어 있습니다.
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
물론 편집 후 화면의 메타 박스 자체에서 ID를 얻을 수 있습니다.
다음을 수행 할 수 있습니다.
add_action('add_meta_boxes', 'yoast_is_toast', 99);
function yoast_is_toast(){
//capability of 'manage_plugins' equals admin, therefore if NOT administrator
//hide the meta box from all other roles on the following 'post_type'
//such as post, page, custom_post_type, etc
if (!current_user_can('activate_plugins')) {
remove_meta_box('wpseo_meta', 'post_type', 'normal');
}
}
... 여기서 게시물 유형은 post
하나 이상의 맞춤 게시물 유형 과 같이이 제한을 적용하려는 게시물 유형입니다!
트릭을해야합니다.
업데이트 : 수정 manage_plugins
해야합니다 activate_plugins
.
$post_type
var 및 action 인수 매개 변수가 필요하지 않으며 통지 / 오류가 발생하지 않습니다. 또한 $post_type
var 를 포함 하면 수행하지 않은 다른 함수 내에서 게시물 유형을 정의해야하므로 사용자가 올바르게 작동하도록 이것을 실행했을 것입니다! 이 경우 포스트 유형 이름을 전달하는 것이 완벽 합니다. 즉 함수에 'post'
직접 입력하십시오 remove_meta_box
. 어쨌든 제안 해 주셔서 감사합니다.
$post_type
이미 정의되어 있으며 add_meta_boxes
동작 후크 기능에 의해 사용될 준비가되었습니다 .이 동작 후크의 Adam Brown 소스보기 를 참조하십시오 . 활용 $post_type
이 경우하면의 코드를 독립적으로 만들 것입니다 post_type
그것을 제거합니다 의미, 편집 화면 wpseo_meta
에서 메타 상자를 모든 이에 발견 된 포스트 유형, 경우 아무 것도 반환하지 않습니다 wpseo_meta
찾을 수 없습니다.
post
post_type 에서 메타 상자를 제거하려고 하므로 초기 솔루션에서 세부 제어가 가능합니다. 그러나 모든 게시물 유형에 대해 제거하려는 경우 이미 정의 된 var를 사용하는 $post_type
것이 좋습니다. 내가 할 일은 $post_type
누군가가 이것을 등록 된 모든 post_types에 적용하려는 경우 변수를 사용하여 추가 예제를 포함하도록 내 대답을 편집 하는 것입니다.
Yoastfunctions.php
의 WordPress SEO 플러그인 ( API Docs ) 에 따라 플러그인 또는 테마 파일에 이것을 붙여 넣으 십시오 .
if(function_exists('wpseo_use_page_analysis') && !current_user_can('administrator')){
add_filter('wpseo_use_page_analysis', '__return_false');
}
오류를 피하려면 ... 이것은 물건을 숨기려고 시도하기 전에 기능이 존재하는지 확인하여 플러그인을 비활성화하고 오류를 발생시키지 않습니다.
init
이것이 제대로 작동하기 위해 연결해야 할 수도 있습니다.
function wpse_init(){
if(function_exists('wpseo_use_page_analysis') && !current_user_can('administrator')){
add_filter('wpseo_use_page_analysis', '__return_false');
}
}
add_action('init', 'wpse_init');
remove_meta_box 함수를 사용하여 제거 할 수 있습니다 .
if ( ! current_user_can( 'edit_pages' ) ) {
add_action( 'add_meta_boxes', 'my_remove_wp_seo_meta_box', 100000 );
}
function my_remove_wp_seo_meta_box() {
remove_meta_box( 'wpseo_meta', 'post', 'normal' );
}
add_action에서 100000을 확인하십시오. 이렇게하면 WP SEO 메타 박스가 연결된 후에 수행됩니다.
관리 플러그인을 사용하여 역할에 따라 사용자로부터 항목을 숨길 수 있습니다. 클라이언트에서 Yoast SEO 항목을 숨기고 백엔드를 단순화하기 위해 이것을 사용했습니다.
http://wordpress.org/extend/plugins/adminimize/
숨기려는 항목에 CSS 선택기를 추가하여 사용하기가 매우 쉽습니다. SEO 페이지 분석 탭 (#linkdex)을 숨기기 위해 사용했습니다
yoast_is_toast()
.