Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (3 účastníci) se naposledy zapojil uživatel
sjiamnocna a poslední změna je stará 9 let, 4 měsíce.
-
Používám tento kód pro odstranění ikonek v TinyMCE a potřebuji poradit jak jej mám upravit aby se vybraná ikonka odstranila jen u příspěvků a u stránek zůstala viditelná. Díky.
function remove_tinymce_buttons($buttons)
{
$remove = array('');
return array_diff($buttons,$remove);
}
add_filter('mce_buttons','remove_tinymce_buttons');
add_filter('mce_buttons_2','remove_tinymce_buttons');
Zkusil bych to zjistit pomocí funkce get_current_screen(), podobně je to popsáno např. v jednom z návodů (anglicky).
function separatista_remove_tinymce_buttons( $buttons ) {
$screen = get_current_screen();
if ( $screen->base == 'post' && $screen->post_type == 'post' ) {
$buttons = array();
}
return $buttons;
}
add_filter( 'mce_buttons', 'separatista_remove_tinymce_buttons' );
add_filter( 'mce_buttons_2', 'separatista_remove_tinymce_buttons' );
Netestováno, dejte prosím vědět…
Použijte get_current_screen pro vytvoření podmínky;
$screen = ( function_exists('get_current_screen') ) ? get_current_screen() : false;
if ( ( $screen && $screen->post_type !== 'post' ) || !$screen) return $buttons;
EDIT: Pardon, během času tvoření mé vlastní invence stihl napsat Admin :-)
@sjiamnocna: To vůbec nevadí, díky za rychlou reakci do fóra! Podmínka function_exists() tam je sice na první pohled zbytečná, protože je funkce ve WordPressu už od verze 3.1 a nikdo snad už starší verzi nemá. Ale po přečtení dokumentace jsem tam viděl nějakou informaci o možné chybě, takže se asi hodí :-) Dobrá je asi i podmínka na existenci $screen
, protože by funkce mohla v některých případech vrátit null
.
Mimochodem, zkoušel jsem svůj kód a vypadá to, že se podaří odstranit vždy pouze jeden nebo druhý řádek tlačítek ve vizuálním editoru, ale nikdy ne oba najednou. Nevím, jestli je to správné chování… Přemýšlím, jestli není nějaký hook na odpojení všech ikonek najednou… Ale uvidíme, co na to @mil667 :-)
Ano, většinou hledám v dokumentaci funkce, které neznám tak dobře, nebo parametry, které si nejsem jistý (např. pořadí parametrů, názvy argumentů v polích ap.). Ve funkci get_current_screen jsem přečetl toto: attempting to call get_current_screen() will result in a fatal error because it is not defined
, takže jsem váhal, jestli je potřeba kontrola
function_exists
, is_admin
nebo isset(get_current_screen()->post_type)
či co…
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.
WordPress – novinky, návody a zajímavosti