将ul类添加到函数输出

时间:2016-11-17 18:36:36

标签: php wordpress function class html-lists

我有功能。它表明了这一点。

<ul>

如何在function arphabet_widgets_init() { register_sidebar( array( 'name' => 'Home right sidebar', 'id' => 'home_right_1', 'before_widget' => '<div id="sidebar-category">', 'after_widget' => '</div>', 'before_title' => '<h2 class="sidebar-title black">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'arphabet_widgets_init' ); 中添加课程?

这是我的功能:

<?php dynamic_sidebar( 'home_right_1' ); ?>

我使用此代码显示HTML

{{1}}

3 个答案:

答案 0 :(得分:0)

我看到你正在使用WordPress。你可以编辑小部件中的ul来手动添加类吗?如果没有,你总是可以使用jQuery(存在于WordPress中)来添加一个类:

$('#sidebar-category ul').addClass('myClass');

确保在dom准备就绪后加载:

$(document).ready(function() {
    $('#sidebar-category ul').addClass('myClass');
});

答案 1 :(得分:0)

您是否只使用默认的wordpress'类别'小部件?看起来你无法直接编辑ul元素。据此:https://github.com/WordPress/WordPress/blob/master/wp-includes/widgets/class-wp-widget-categories.php

您需要使用像derekcbaldwin建议的jQuery,或者编写自己的小部件/扩展类别小部件。

答案 2 :(得分:0)

您可以通过以下两种方式实现这一目标:

  1. 使用JS / JQuery |如上所述,但在没有启用javascript的浏览器中它将失败,这是一种罕见的情况。
  2. 使用输出缓冲区| PHP方式
  3. 使用JQUERY:

    jQuery(document).ready(function($) {
        $('#sidebar-category ul').addClass('your-class-name');
    });
    

    使用PHP输出缓冲:

    在sidebar.php中或使用侧边栏输出函数dynamic_sidebar('your-sidebar')的地方使用下面给出的代码:

    <?php
        ob_start();
        dynamic_sidebar( 'your-sidebar' );
        $sidebar_output = ob_get_clean();
        $ul_class = 'your-class-name';
        echo apply_filters( 'widget_output', $sidebar_output, $ul_class );
    ?>
    

    在functions.php文件中添加一个过滤器挂钩到widget_output,它将向UL添加类:

    <?php
    
        function widget_output_processor( $widget_output, $ul_class ) {
    
            $widget_output = str_replace('<ul>', '<ul class="'.$ul_class.'">', $widget_output);
            return $widget_output;
    
        }
        add_filter( 'widget_output', 'widget_output_processor', 10, 2 );
    
    ?>