利用WordPress的管理用户界面进行插件设置:获取手风琴样式

时间:2016-09-08 作者:Ethan O\'Sullivan

作为插件开发人员,重要的是确保仪表板与WordPress的其他本机组件具有相同的外观和感觉,以提供更好的User Experience.

对于我的插件,我想实现an accordion 在“我的设置”页面中。From reading this article 和使用wp_enqueue_script() 函数,通过执行以下操作,看起来这是可能的:

<?php
wp_enqueue_script( \'jquery-ui-accordion\' );
?>
<script type="text/javascript">
jQuery(function($){
    $(".accordion").accordion({ header: "h3" });
    $(".accordion").last().accordion("option", "icons", false);
});
</script>

<div class="accordion">
    <div>
        <h3><a href="#">First</a></h3>
        <div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
    </div>
    <div>
        <h3><a href="#">Second</a></h3>
        <div>Phasellus mattis tincidunt nibh.</div>
    </div>
    <div>
        <h3><a href="#">Third</a></h3>
        <div>Nam dui erat, auctor a, dignissim quis.</div>
    </div>
</div>
<?php

Result

Accordion Example

这是从WordPress Admin Pattern Library plugin 我在GitHub上找到的。然而,在他们的演示中,手风琴示例如下所示:

Expected Result

回购协议似乎没有得到维护,这似乎是一个风格问题。是否需要运行其他函数,例如wp_enqueue_style() 这是为了手风琴的正确造型而天生内置的吗?

1 个回复
最合适的回答,由SO网友:C C 整理而成

下面是我在插件/选项页面(位于类中,因此是$this->构造)中的操作方法:

/* enqueue our css */
public function enqueue_options_style( $hook ) {
    if( $hook == $this->admin_page )
        wp_enqueue_style( \'my-options\', \'/some-directory/my-options.css\', false, $this->version );  // only present for our plugin\'s settings page
}
$this->admin_page 是从先前的选项页初始化返回的slug:

$this->admin_page = add_menu_page( __( \'Settings\' ), __( \'Settings\' ), \'some-user-capability\', \'my-options\', array( &$this, \'display_page\' ), \'dashicons-my-icon\' );
并且,将选项样式排入队列的调用被钩住了:

add_action( \'admin_enqueue_scripts\', array( &$this, \'enqueue_options_style\' ), 10, 1 );     // add the css we need for our options settings page
现在,这只是一个构建的问题my-options.css 文件,并为您的.accordion h3 要素

相关推荐

如何在WordPress中包含jQuery-UI库?

我正在尝试使用以下enqueue语句将jQuery UI库加载到WordPress插件中:wp_enqueue_script(\'jquery\'); wp_enqueue_script(\'jquery-ui-core\'); jQuery库加载良好,但ui核心是MIA。我可以启动ui核心函数的唯一方法是使用静态include加载库,如下所示:<script type=\"text/javascript\" src=\"https://ajax.googleapis.com/aj