将类添加到小部件区域中的最后一个小部件
Posted
技术标签:
【中文标题】将类添加到小部件区域中的最后一个小部件【英文标题】:Add class to last widget in widget area 【发布时间】:2011-09-27 23:47:31 【问题描述】:我正在使用以下 php 在我的 Wordpress 主题中显示一些小部件:
<?php
// A sidebar for widgets, just because.
if ( is_active_sidebar( 'primary-widget-area' ) ) : ?>
<ul>
<?php dynamic_sidebar( 'primary-widget-area' ); ?>
</ul>
<?php endif; ?>
基本上<ul>
中的每个小部件都作为一个列表项出现。我希望能够将一个类添加到列表中的最后一个列表项。
我可以用 wordpress/php 做到这一点吗?
【问题讨论】:
出于 CSS 原因你需要那个吗? 哈哈哈,他当然因为 CSS 的原因需要它! 【参考方案1】:最终使用了这个功能。
http://wordpress.org/support/topic/how-to-first-and-last-css-classes-for-sidebar-widgets?replies=1
【讨论】:
【参考方案2】:我曾经编写过 wordpress 在第一个和最后一个小部件中添加第一个和最后一个类名的代码,您可以在 the ticket 中找到 the code。
但是,根据 CSS,您应该能够使用 :last-child
CSS selector 来处理最后一项(所有浏览器,但不包括 IE 5.5 - IE 8)。所以这可能已经解决了你的问题。
ul > li:last-child border:1em solid red;
【讨论】:
@Tomalak Geret'kal:是的,尤其是对我作为 IE 6 用户而言。 抛开你的讽刺,"As of January 2011, estimates of IE8's global market share ranged from 26-33%",它是仍然广泛使用的 Windows XP 操作系统 ("as of May 2011, Windows XP is the most widely used operating system for accessing the Internet in the world with a 40.7% market share, having peaked at 76.1% in January 2007") 上支持的最后一个版本。 Tomalak:这不是讽刺。我的 XP boxe 不能超过 IE6。【参考方案3】:如果您想为第一个或最后一个小部件内部侧边栏添加自定义类。
你可以使用动作钩子“init”
获取所有激活小部件、侧边栏 循环遍历每个小部件并更改类名 add_action('init', 'ak_add_order_classes_for_widgets' ); 功能 ak_add_order_classes_for_widgets() 全局 $wp_registered_sidebars,$wp_registered_widgets; #抓取小部件 $sidebars = wp_get_sidebars_widgets(); 如果(空($sidebars)) 返回; #循环遍历每个小部件并更改类名 foreach ( $sidebars as $sidebar_id => $widgets ) 如果(空($widgets)) 继续; $number_of_widgets = count($widgets); foreach ( $widgets as $i => $widget_id ) $wp_registered_widgets[$widget_id]['classname'] .= ' ct-widget-order-' 。 $i; # 添加第一个小部件类 如果 ( 0 == $i ) $wp_registered_widgets[$widget_id]['classname'] .= 'ct-widget-first'; # 添加最后一个小部件类 if ( $number_of_widgets == ( $i + 1 ) ) $wp_registered_widgets[$widget_id]['classname'] .= 'ct-widget-last';我的博客:http://colourstheme.com/2015/03/add-class-to-first-and-last-widget/
【讨论】:
您应该直接在答案中包含该链接后面的代码。 感谢您的建议:D以上是关于将类添加到小部件区域中的最后一个小部件的主要内容,如果未能解决你的问题,请参考以下文章