Avant WP 3.9, les deux filtres suivants étaient appliqués dans le fichier functions.php:
function my_mce_buttons_2( $buttons ) {
array_unshift( $buttons, 'styleselect' );
return $buttons;
}
add_filter('mce_buttons_2', 'my_mce_buttons_2');
function mce_mod( $init ) {
$init['theme_advanced_blockformats'] = 'p,h3,h4';
$init['theme_advanced_styles'] = "Header gross=mus-bi news-single-bighead; Header klein=mus-bi news-single-smallhead; Link=news-single-link; List Items=news-single-list";
return $init;
}
add_filter('tiny_mce_before_init', 'mce_mod');
de sorte que la liste déroulante des formats de paragraphe affiche uniquement p, h3 et h4 tandis que la liste déroulante des styles personnalisés affiche "En-tête brut", "En-tête klein" et ainsi de suite. Mais malheureusement, wp et tinymce ne dérangent plus depuis wp 3.9, je ne vois que la liste déroulante des formats de paragraphe standard maintenant
ainsi que la liste déroulante des formats de styles standard:
Jusqu'à présent, je n'ai trouvé aucun document pour savoir si des crochets ont changé avec la mise à jour de tinymce 4. Tout le monde le sait? Cordialement Ralf
Mise à jour: Ok sur la base d'un peu plus de recherche et des commentaires ci-dessous, je suppose que j'ai compris les choses:
//Creating the style selector stayed the same
function my_mce_buttons( $buttons ) {
array_unshift( $buttons, 'styleselect' );
return $buttons;
}
add_filter('mce_buttons', 'my_mce_buttons');
function mce_mod( $init ) {
//theme_advanced_blockformats seems deprecated - instead the hook from Helgas post did the trick
$init['block_formats'] = "Paragraph=p; Heading 3=h3; Heading 4=h4";
//$init['style_formats'] doesn't work - instead you have to use tinymce style selectors
$style_formats = array(
array(
'title' => 'Header 3',
'classes' => 'mus-bi news-single-bighead'
),
array(
'title' => 'Header 4',
'classes' => 'mus-bi news-single-smallhead'
),
array(
'title' => 'Link',
'block' => 'a',
'classes' => 'news-single-link',
'wrapper' => true
)
);
$init['style_formats'] = json_encode( $style_formats );
return $init;
}
add_filter('tiny_mce_before_init', 'mce_mod');
style_select
et y ajouter un menu "Classes". wordpress.stackexchange.com/questions/143689/…Réponses:
Si vous regardez dans,
class-wp-editor.php
vous constaterez que le filtre que vous utilisez est toujours là, mais les paramètres sont différents.Je suppose, mais je pense que vous devez changer la clé du tableau vers laquelle vous ciblez
formats
.EDIT Laissant cela en place, mais le PO confirme que cela ne fait pas ce qu'il tente.
Gardez à l'esprit que cela n'a pas été testé, votre kilométrage peut donc varier. (Et ne l'utilisez pas sur un site de production avant de l'avoir testé).
Poursuivre
En creusant plus profondément, les formats semblent être un bouton tinyMCE personnalisé. Vous pouvez voir que le
formatselect
bouton est ajoutémce_buttons_2
dans leclass-wp-editor.php
. Et puis je l'ai suivi pourtinymce.js
:Dans cet esprit, je pense que la nouvelle cible serait de 1. (idéalement) changer le
editor.settings.block_formats
ou 2. supprimer ce bouton en filtrantmce_buttons_2
et en ajoutant votre propre version personnalisée.Testé et fonctionnel
Petite mise en garde : je ne sais pas où ajouter les styles pour les éléments déroulants eux-mêmes. Dans l'exemple TinyMCE, l'option "Red Headline" est rouge. Je ne pouvais pas comprendre cela. Si vous le faites, s'il vous plaît laissez-moi savoir.
la source
block_formats
option ne peut pas avoir de fin; . Je construisais la valeur à partir des options configurables enregistrées et j'avais un suivi; qui a falsifié la liste. J'espère que cela fera gagner quelques minutes à quelqu'un.array( 'title' => 'Red text', 'inline' => 'span', 'styles' => array( 'color' => '#ff0000' ) ),
?unset($init['preview_styles']);
$init['preview_styles'] = 'font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow';
. Je suppose que c'est essentiellement la même chose que @Dalton l'a suggéré, bien que d'une manière plus explicite. Cela définit simplement les valeurs par défaut, selon la documentation