2017-08-21 2 views
1

J'essaye d'ajouter des classes de CSS aux boîtes de méta de Wordpress. Je veux que le processus soit réutilisable. Voilà ce que je pensais:Comment puis-je ajouter des classes CSS à des boîtes de méta Wordpress personnalisées?

Ajouter Meta Box

add_meta_box('my_meta_box', 'My Meta Box', [$metaBoxesClass, 'display_meta_box'], 'my_post_type', 'normal', 'low', [ 
    'slug' => 'my_meta_box', 
    'classes' => ['my-class'] 
]); 

Afficher Meta Box (en classe $metaBoxesClass)

public function display_meta_box($post = null, $o = []) { 

    // add filter with anonymous callback, default priority and 2 arguments 
    add_filter('postbox_classes_'.$post->post_type.'_'.$o["slug"], function($classes = [], $classesNew = []) { 

      foreach($classesNew as $class) { 

       array_push($classes, $class); 
      } 

      return $classes; 

     }, 10, 2); 

    // apply new filter with 2 arguments 
    apply_filters('postbox_classes_'.$post->post_type.'_'.$o["slug"], [], $o['classes']); 
} 

Je ne semble pas avoir des erreurs faisant cela, mais le la classe my-class n'est pas appliquée à ma boîte méta my_meta_box. Puis-je ajouter un filtre dans le rappel display_meta_box?

Répondre

0

Vous devez utiliser et $o["args"]["classes"] à la place $o["slug"] et .