• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 怎么为WordPress小工具添加CSS类选项

怎么为WordPress小工具添加CSS类选项

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了WordPress小工具,添加CSS类选项等相关知识,希望对您有所帮助

下面给大家介绍怎么为WordPress小工具添加CSS类选项,希望对需要的朋友有所帮助!


WordPress 小工具可以重复使用,相同的小工具样式也是相同的,如果想自定义某个前台添加的小工具样式,与其它不同,可以通过查看原代码,找到它的id,比如搜索小工具会看到类似的:

<section id="search-2" class="widget widget_search">

其中search-2就是这个小工具的ID,可以用#search-2定义样式,不过这个后缀的编号并不是固定的,下次添加可能会变,需要再次编辑之前的样式,有些麻烦。

可以通过下面的代码,给现有的小工具统一增加CSS类选项,将代码添加到当前主题函数模板functions.php中即可,效果如图:


608698b69a328.png


代码一:

只加一个CSS类选项

function zm_widget_form_extend( $instance, $widget ) {    if ( !isset($instance['classes']) )    $instance['classes'] = null;    $row = "<p>\n";    $row .= "\t<label for='widget-{$widget->id_base}-{$widget->number}-classes'>CSS类</label>\n";    $row .= "\t<input type='text' name='widget-{$widget->id_base}[{$widget->number}][classes]' id='widget-{$widget->id_base}-{$widget->number}-classes' class='widefat' value='{$instance['classes']}'/>\n";    $row .= "</p>\n";    echo $row;    return $instance;}add_filter('widget_form_callback', 'zm_widget_form_extend', 10, 2);function zm_widget_update( $instance, $new_instance ) {    $instance['classes'] = $new_instance['classes'];    return $instance;}add_filter( 'widget_update_callback', 'zm_widget_update', 10, 2 );  function zm_dynamic_sidebar_params( $params ) {    global $wp_registered_widgets;    $widget_id    = $params[0]['widget_id'];    $widget_obj    = $wp_registered_widgets[$widget_id];    $widget_opt    = get_option($widget_obj['callback'][0]->option_name);    $widget_num    = $widget_obj['params'][0]['number'];          if ( isset($widget_opt[$widget_num]['classes']) && !empty($widget_opt[$widget_num]['classes']) )    $params[0]['before_widget'] = preg_replace( '/class="/', "class=\"{$widget_opt[$widget_num]['classes']} ", $params[0]['before_widget'], 1 );    return $params;}add_filter( 'dynamic_sidebar_params', 'zm_dynamic_sidebar_params' );


代码二:

添加ID及CSS类下拉选项

function zm_widget_form_extend( $instance, $widget ) {    if ( !isset( $instance['classes'] ) )    $instance['classes'] = null;          if ( !isset( $instance['custom_id'] ) )    $instance['custom_id'] = null;          $class_prefix = 'widget-';     $myclass = array(        'default'  => '默认',        'blue'     => '蓝色',        'yellow'   => '黄色',        'black'    => '黑色',    );          $row = "<p>\n";    $row .= "\t<label for='widget-{$widget->id_base}-{$widget->number}-custom_id'>添加ID</label>\n";    $row .= "\t<input type='text' name='widget-{$widget->id_base}[{$widget->number}][custom_id]' id='widget-{$widget->id_base}-{$widget->number}-custom_id' class='widefat' value='{$instance['custom_id']}' />\n";    $row .= "\t<label for='widget-{$widget->id_base}-{$widget->number}-classes'>CSS类</label>\n";    $row .= "\t<select name='widget-{$widget->id_base}[{$widget->number}][classes]' id='widget-{$widget->id_base}-{$widget->number}-classes' class='widefat'>";    foreach( $myclass as $key => $class ) {        $selected = null;        if( $class_prefix.$key == $instance['classes'] ) $selected = 'selected = "selected"';        $row .= "\t<option value='$class_prefix$key' $selected>$class</value>\n";    }    $row .= "</select>\n";    echo $row;    return $instance;}add_filter('widget_form_callback', 'zm_widget_form_extend', 10, 2);  function zm_widget_update( $instance, $new_instance ) {    $instance['classes'] = $new_instance['classes'];    $instance['custom_id'] = $new_instance['custom_id'];    return $instance;}add_filter( 'widget_update_callback', 'zm_widget_update', 10, 2 );  function zm_dynamic_sidebar_params( $params ) {    global $wp_registered_widgets;    $widget_id  = $params[0]['widget_id'];    $widget_obj = $wp_registered_widgets[$widget_id];    $widget_opt = get_option($widget_obj['callback'][0]->option_name);    $widget_num = $widget_obj['params'][0]['number'];          if ( isset( $widget_opt[$widget_num]['classes'] ) && !empty( $widget_opt[$widget_num]['classes'] ) )    $params[0]['before_widget'] = preg_replace( '/class="/', "class=\"{$widget_opt[$widget_num]['classes']} ", $params[0]['before_widget'], 1 );    if ( isset($widget_opt[$widget_num]['custom_id']) && !empty($widget_opt[$widget_num]['custom_id']) )    $params[0]['before_widget'] = preg_replace( '/id=".*?"/', "id=\"{$widget_opt[$widget_num]['custom_id']}\"", $params[0]['before_widget'], 1 );    return $params;}add_filter( 'dynamic_sidebar_params', 'zm_dynamic_sidebar_params' );

代码中预设了CSS类名称,可能使用更方便些。

缺点:添加的选项位置在其它小工具选项的上面,需要改进一下。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 怎么为WordPress小工具添加CSS类选项
  • 如何禁用WordPress5.8小工具区块编辑模式

相关文章

  • 2022-04-29Photoshop打造快速坠入水的文字特效
  • 2022-04-29Phpcms V9管理后台登陆及会员注册登录模板的修改
  • 2022-04-29PHP7如何使用set_error_handler和set_exception_handler处理异常机制
  • 2022-04-29PHP中如何将JSON文件转XML格式
  • 2022-04-29jQuery对象怎么转为html dom对象
  • 2022-04-29帝国cms忘记后台登录认证码和安全问题的解决方法
  • 2022-04-29jQuery sibling是什么意思
  • 2022-04-29详解MySQL 联合查询 (IN和EXISTS区别)
  • 2022-04-29Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
  • 2022-04-29纯CSS使图片有放大效果代码

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Photoshop绘制逼真的篮球图标教程
    • PHP处理字符中的emoji表情(判断/移除/存储)
    • Thinkphp3.2 畅言评论回推接口制作
    • Photoshop设计移动APP应用类型网站
    • thinkphp增加每页显示条数的方法
    • 随着微信支付的升级,PHP微信支付类V3接口也来了
    • 浅谈Bootstrap Tab标签页切换图表显示问题的解决方法
    • css中实现背景透明的三种方式
    • 数据库独立性是指数据库和什么相互独立?
    • 浅析微信小程序中自定义组件的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有