Mám webovou stránku pro více autorů a nejsem moc pohodlný pro to, aby všichni členové mohli zadávat detaily SEO do příspěvků, které publikují. Chtěl bych, aby to bylo viditelné pouze pro správce webu. Nějaké nápady?
To neřeklo v API dokumentech na Yoast SEO plugin místě co ID
byl a já nemám kopii Yoast na instalované k dispozici, ale podle yoas-plugin-dir/admin/class-metabox.php
řádek 144, meta_box registrován je;
add_meta_box( 'wpseo_meta', ...etc ); ...
Který je závislý na háku add_meta_boxes
na řádku 32 stejného souboru,
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
Samozřejmě můžete dostat ID z meta box sám na post edit obrazovky ... Každopádně.
Můžete udělat následující,
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');
}
}
... kde typ příspěvku je typ příspěvku, který chcete použít i toto omezení, jako například post
nebo vlastní typ příspěvku jeden nebo více!
Měl by to udělat trik.
update:manage_plugins
mělo býtactivate_plugins
- pozměněno.
Můžete jej odebrat pomocí funkce 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' );
}
Všimněte si, že 100000 v add_action, což zajišťuje, že se to provede poté, co byl připojen metabox WP SEO.
Zkuste to vložit do pluginu nebo tématu functions.php
souboru, podle WordPress SEO pluginu ( API Docs ), podle Yoast .
if(function_exists('wpseo_use_page_analysis') && !current_user_can('administrator')){
add_filter('wpseo_use_page_analysis', '__return_false');
}
Chcete-li se vyhnout chybám ... Toto zkontroluje, zda funkce existuje, než se pokusíte skrýt věci, což vám umožní deaktivovat plugin a nehodit chyby.
Možná budete muset zavést do init
, aby to správně fungovalo, což by mohlo být provedeno takto:
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');
Pomocí pluginu Adminimize můžete skrýt položky od uživatelů v závislosti na jejich rolích. Použili jsem to sám skrýt některé Yoast SEO věci od klientů a zjednodušení zadní konec.
http://wordpress.org/extend/plugins/adminimize/
Docela přímočaré použít přidáním css voliče pro položky, které chcete skrýt. Použili jej skrýt karty Analýza stránky SEO (#linkdex)
No tam je možnost nastavení na WordPress SEO Yoast pro zakázání pokročilé části WordPress SEO nastavení pro non admins. Pokud chcete krabici zcela vypnout, můžete použít jiné pluginy k odstranění prvků stránky editoru příspěvků pro neadministry, např. odstranění WordPress SEO box z post editoru pro non admins.