从微件ID获取微件标题

时间:2017-06-19 作者:Zach Tackett

是否有任何方法可以从小部件id获取小部件的标题?文章标题可以使用

get_the_title()
有没有一种方法可以获得使用相同种类或功能的小部件的标题?

2 个回复
SO网友:dbeja

您可以通过以下方式从小部件id获取小部件名称:

<?php
    global $wp_registered_widgets;
    $id = \'recent-comments-1\';  // example
    if ( isset($wp_registered_widgets[$id][\'name\']) ) {
        echo $wp_registered_widgets[$id][\'name\'];
    }
?>

SO网友:Jörn Lund

这对我在dynamic_sidebar_params:

/**
 *  Get Widget instance title or widget name as a fallback.
 *  Returns empty widget titles too.
 *
 *  @param string $widget_id
 *  @return string Widget title or widget name
 */
function get_widget_title( $widget_id ) {

    global $wp_registered_widgets;

    // get instance
    $instance = $wp_registered_widgets[$widget_id][\'callback\'][0];
    // @see https://developer.wordpress.org/reference/classes/wp_widget/get_settings/
    $settings = $instance->get_settings();

    // fallback 1 – widget number can\'t be found
    if ( isset( $wp_registered_widgets[$widget_id][\'params\'][0][\'number\'] ) ) {
        $num = $wp_registered_widgets[$widget_id][\'params\'][0][\'number\'];
    } else {
        return $instance->name;
    }

    // nasty nesting
    if ( isset( $settings[ $num ][\'title\'] ) ) {
        return $settings[ $num ][\'title\'];
    }
    return $instance->name;

}

结束

相关推荐

如何解决警告:ufwp_widget_text()缺少参数2

我正在使用在线课程的edume主题,从我的网站购买课程时,请给出以下错误。怎么解决呢?警告:在/home/basic340/public\\u html/wp content/plugins/wp udemy/includes/widgets中缺少ufwp\\u widget\\u text()的参数2。php第63行警告:在/home/basic340/public\\u html/wp content/plugins/wp udemy/includes/widgets中缺少ufwp\\u widget