wpbones/pure-css-tabs 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wpbones/pure-css-tabs

Composer 安装命令:

composer require wpbones/pure-css-tabs

包简介

Pure CSS tabs for WP Bones

README 文档

README

Latest Stable Version   Latest Unstable Version   Total Downloads   License   Monthly Downloads

This package provides a simple way to create tabs with pure CSS for WordPress/WP Bones.

Pure CSS Tabs for WP Bones

Requirements

This package works with a WordPress plugin written with WP Bones framework library.

Installation

You can install third party packages by using:

php bones require  wpbones/pure-css-tabs

I advise to use this command instead of composer require because doing this an automatic renaming will done.

You can use composer to install this package:

composer require  wpbones/pure-css-tabs

You may also to add " wpbones/pure-css-tabs": "~0.7" in the composer.json file of your plugin:

  "require": {
    "php": ">=7.4",
    "wpbones/wpbones": "~1.9",
    "wpbones/pure-css-tabs": "~1.1"
  },

and run

composer install

Enqueue for Controller

You can use the provider to enqueue the styles.

public function index()
{
  // enqueue the minified version
  PureCSSTabsProvider::enqueueStyles();

  // ...

}

PureCSSTabsProvider

This is a static class autoloaded by composer. You can use it to enqueue or get the styles path:

// enqueue the minified version
PureCSSTabsProvider::enqueueStyles();

// enqueue the flat version
PureCSSTabsProvider::enqueueStyles( false );

// return the absolute path of the minified css
PureCSSTabsProvider::css();

// return the absolute path of the flat css
PureCSSTabsProvider::css();

HTML markup

<!-- main tabs container -->
<div class="wpbones-tabs">

  <!-- first tab -->
  <input id="tab-1" type="radio" name="tabs" checked="checked" aria-hidden="true">
  <label for="tab-1" tabindex="0"><?php _e( 'Database' ) ?</label>
  <div class="wpbones-tab">
    <h3>Content</h3>
  </div>

  <!-- second tab -->
  <input id="tab-2" type="radio" name="tabs" aria-hidden="true">
  <label for="tab-2" tabindex="0"><?php _e( 'Posts' ) ?></label>
  <div class="wpbones-tab">
    <h3>Content</h3>
  </div>

  <!-- son on... -->

</div>

Of course, you may use the fragment feature to include the single tabs:

<!-- main tabs container -->
<div class="wpbones-tabs">

  <!-- first tab -->
  <?php echo WPkirk()->view( 'folder.tab1' ) ?>

  <!-- second tab -->
  <?php echo WPkirk()->view( 'folder.tab2' ) ?>

  <!-- son on... -->

</div>

In /folder/tab1.php you just insert the following markup:

<!-- first tab -->
<input id="tab-1" type="radio" name="tabs" checked="checked" aria-hidden="true">
<label for="tab-1" tabindex="0"><?php _e( 'Database' ) ?></label>
<div class="wpbones-tab">
 <h3>Content</h3>
</div>

Customize

Of course, you can edit both of CSS or LESS files in order to change the appearance of tabs. In the LESS file, you'll find the color variable as well.

@wpbones-tab-border-color : #aaa;
@wpbones-tab-responsive-accordion-border : #ddd;
@wpbones-tab-disabled : #ddd;
@wpbones-tab-content-color : #fff;

💡 Anyway, the best way to customize your tabs is override the default styles. Otherwise, when an update will be done you'll lose your customization.

Helper

In addition, you can use some methods provided by PureCSSTabsProvider class. In your HTML view you might use:

    /**
     * Display tabs by array
     *
     *     self::tabs(
     *       'tab-1' => [ 'label' => 'Tab 1', 'content' => 'Hello', 'selected' => true ],
     *       'tab-2' => [ 'label' => 'Tab 1', 'content' => 'Hello' ],
     *       ...
     *     );
     *
     * @param array $array
     */
    WPKirk\PureCSSTabs\PureCSSTabsProvider::tabs(
      'tab-1' => [ 'label' => 'Tab 1', 'content' => 'Hello', 'selected' => true ],
      'tab-2' => [ 'label' => 'Tab 1', 'content' => 'Hello' ],
      ...
    );

Also, you can use openTab() and closeTab() methods:

  /**
   * Display the open tab.
   *
   * @param string|array  $label    The label of tab or un array with [label, group]
   * @param null          $id       Optional. ID of tab. If null, will sanitize_title() the label.
   * @param bool          $selected Optional. Default false. TRUE for checked.
   * @param string        $group    Optional. Group of tabs when you want to handle multiple tab in the same view. Default 'tabs'

   */
   public static function openTab( $label, $id = null, $selected = false ) {}
<div class="wpbones-tabs">

  <?php WPKirk\PureCSSTabs\PureCSSTabsProvider::openTab( 'Tab 1', null, true ) ?>
    <h2>Hello, world! I'm the content of tab-1</h2>
  <?php WPKirk\PureCSSTabs\PureCSSTabsProvider::closeTab ?>

  <?php WPKirk\PureCSSTabs\PureCSSTabsProvider::openTab( 'Tab 2' ) ?>
    <h2>Hello, world! I'm the content of tab-2</h2>
  <?php WPKirk\PureCSSTabs\PureCSSTabsProvider::closeTab ?>

</div>

You may also use the hook approach by using ::useTabs()

<?php [$openTabs, $closeTabs] = WPKirk\PureCSSTabs\PureCSSTabsProvider::useTabs() ?>

<div class="wpbones-tabs">

  <!-- first tab -->
  <?php $openTabs(['Settings', 'hook'], null, true); ?>

  <div>
    <h3>Content for Settings</h3>
  </div>

  <?php $closeTabs(); ?>

  <!-- second tab -->
  <?php $openTabs(['Dashboard', 'hook']); ?>

  <div>
    <h3>Content for Dashboard</h3>
  </div>

  <?php $closeTabs(); ?>

  <!-- son on... -->

</div>

👆 Remember, in the example above I have used WPKirk base namespace. You should replace it with your own namespace.

统计信息

  • 总下载量: 813
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: Less

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-11-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固