null

暂无访客记录

如何给WordPress 小工具添加CSS类选项?

详情
评论
问答
赞助

您可以通过搜索或浏览分类列表来找到您期望下载的资源。随后点击资源介绍页右侧的下载链接按钮,依据提示信息进行操作即可。

大部分资源可积分免费下载,为了维持网站的运行小部分资源须付费才能下载。

本站提供的下载资源均为网络搜集,仅供个人学习和交流使用。对于版权问题,请用户自行判断并承担相应责任。

随着时间的推移,维持网站的运行需要支出高昂的服务器和带宽费用。为了能继续坚持免费做下去,如果觉得文章对您有用,希望您能动动发财的小手免费赞助狐狸,给狐狸加油打气!激励狐狸库继续创作下去!谢谢!

在互联网的浩瀚海洋中,我们的网站就像一座明亮的灯塔,为无数用户照亮前行的道路。它承载着知识的传递、梦想的交流,以及大家共同的回忆与期待。然而,运营和维护这样一个网站需要投入大量的心血与资金。

现在,您只需通过支付宝扫码领红包,就能轻松成为我们的赞助人。这不仅是一次简单的支持,更是您与网站共同成长的见证。操作简单,打开支付宝,扫描专属二维码,您的每一份心意都将化作网站发展的动力。

您的赞助,能让网站不断升级,提供更优质的服务,给大家带来更好的体验。让我们携手共进,让这座灯塔绽放更耀眼的光芒,照亮更多人的网络世界 。

下面是免费赞助的方法和流程

  1. 下面图一是本站的支付宝每日领红包二维码,使用支付宝扫描二维码后会自动显示红包金额,有任意小额金额红包。
  2. 点击“去使用”,再扫描第三张图的二维码进行付款即可。
  3. 上面扫到多少红包就输入多少金额,红包会自动抵扣金额,所以不需要额外费用。
  4. 如需赞助自定义金额请到【赞助狐狸】页面进行赞助。
  5. 这个扫码红包是每天都可以领的哦,支持同账号重复,每天花一分钟时间即可免费支持本站!
扫码红包 红包图 扫码支付

WordPress 的小工具是可以重复使用的,但是页面所调用的小工具,所有的样式都是一样的。无法在特定页面使用不同的样式在展现。

这其实可以通过代码来解决这个问题,想要让前台某个页面使用不同样式的小工具样式。可以通过以下方法来实现。

查找到小工具ID

首先可以在前台通过源代码查看(F12),查看小工具的ID是多少。如下:

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

这段代码中的search-2就是小工具的ID,可以在页面中使用选择器来写这个ID的样式。#search-2{CSS样式表};但是这个ID的后缀不是一成不变的,再次添加可能会改变。这里只能用来控制,而不能实际的做到后台指定某个页面改变样式。

这里就需要在后台给小工具添加一个CSS选项。

添加wordpress小工具CSS选项方法与代码

将以下代码添加到当前主题函数模板functions.php中即可,效果如图:

如何给WordPress 小工具添加CSS类选项?-狐狸库

只加一个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\' );

第二种,是添加多个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样式。

最后,你只需要在外部CSS样式表书写blue、yellow、black 这几个样式即可引用。


温馨提示:本文最后更新于2022/10/20 03:35:53。若文章内容或图片失效,请留言联系站长反馈!
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容