如何在边栏中注入第[x]个小部件之后的html?

时间:2013-09-03 作者:David Icke

我不能提供任何代码,因为我不知道从哪里开始。

我喜欢在侧边栏中的第一个小部件之后添加一些编程创建的小部件(或者只是html)。现在我知道我必须先包含这个小部件,这当然很容易。

2 个回复
SO网友:vancoder

如果我理解正确的话,实现这一点的一个肮脏的方法是在页面上使用两个侧边栏区域:上部和下部。调用上层,然后包含代码,然后调用下层。

其他方法可能是创建自己的小部件,在运行时提取适当的数据,但您尚未解释需求中的“编程创建”部分。

SO网友:NickJAB

编辑:忘记-将此代码添加到函数中。php

function nb_widget_number( $params ) {
    $widget_id = $params[0][\'id\'];
    $widget_array = wp_get_sidebars_widgets();
    $widget_count = count( $widget_array[$widget_id] );

        // set widget number to array if not set already    
    if( !$nb_widget_num )
        $nb_widget_num = array();

        // if no widgets, return params
    if( !isset( $widget_array[$widget_id] ) || !is_array( $widget_array[$widget_id]) )
        return $params;

        // if widget number set, add 1, if not, set to 1             
    isset( $nb_widget_num[$widget_id] ) ? $nb_widget_num[$widget_id] ++ : $nb_widget_num[$widget_id] = 1;

    // now you can do anything with that count you want. in this case, place something after the nth widget (1st for this example)
        if( $nb_widget_num[$widget_id] == 1 )
            $params[0][\'after_widget\'] = \'SOME CODE\';

        return $params;
}
然后您只需添加过滤器,让wordpress知道如何使用此功能:

add_filter( \'dynamic_sidebar_params\', \'nb_widget_number\');
除了在小部件之后添加代码之外,您还可以使用它来添加代码、修改类(例如first/last),或者真正更改小部件$params的任何特性。

结束

相关推荐

If Query In Sidebar

我正在尝试创建一个查询如果“FeaturedQuote”自定义字段中有值,则显示<h3 class=\"featuredquote\"><blockquote><span class=\"bqstart\">&#8220;</span><?php global $wp_query; $postid = $wp_query->post->ID; echo get_post_meta($p