wordpress的论坛插件bbpress中的bbp_get_breadcrumb函数解析

导语:叶子为了测试一下wordpress的论坛插件,安装了BBPRESS,然后遇到一个问题,那就是,论坛的面包屑导航的首页链接的文本内容怎么改都是英文的“HOME”,后来才发现是这么回事。

问题展示

我们可以看到论坛面包屑导航的首页文本是“Home”,叶子为了改掉它,找到它的调用函数bbp_get_breadcrumb()。

wordpress的论坛插件bbpress中的bbp_get_breadcrumb函数解析
bbpress

发现里面有一个 “Home”。

$pre_front_text = __( 'Home', 'bbpress' );

直接改动为“首页”,发现不起效,输出还是英文。

于是,叶子仔细读了这段代码。

function bbp_get_breadcrumb( $args = array() ) {

		// Turn off breadcrumbs
		if ( apply_filters( 'bbp_no_breadcrumb', is_front_page() ) )
			return;

		// Define variables
		$front_id         = $root_id                                 = 0;
		$ancestors        = $crumbs           = $tag_data            = array();
		$pre_root_text    = $pre_front_text   = $pre_current_text    = '';
		$pre_include_root = $pre_include_home = $pre_include_current = true;

		/** Home Text *********************************************************/

		// No custom home text
		if ( empty( $args['home_text'] ) ) {

			$front_id = get_option( 'page_on_front' );

			// Set home text to page title
			if ( !empty( $front_id ) ) {
				$pre_front_text = get_the_title( $front_id );

			// Default to 'Home'
			} else {
				$pre_front_text = __( 'Home', 'bbpress' );
			}
		}

下面还是有很长的代码,篇幅有限就不贴出来了。

这个函数在/wp-content/plugins/bbpress/includes/common/template.php,大家可以自己去看。

叶子仔细读代码后发现这个home_text先是读取静态首页的页面标题,如果没有静态首页,才使用Home这个值。然后叶子想起,自己的静态首页页面的标题正好是Home,当时随手输入的英文单词,赶紧将静态首页的标题改为“首页”,好了,论坛的面包屑导航都成中文的了。

bbp_get_breadcrumb函数使用

下面是这个函数的使用例子:

$args = array(
				// HTML
				'before'          => '',
				'after'           => '',
				// 分隔符
				'sep'             => ' ',
				'pad_sep'         => 0,
				'sep_before'      => '',
				'sep_after'       => '',
				// Crumbs
				'crumb_before'    => '',
				'crumb_after'     => '',
				// 当前
				'current_before'  => '',
				'current_after'   => '',
				//添加一个首页的文本参数,不然面包屑导航会是英文的home
				'home_text'   => '首页',
				// Custom breadcrumbs (default will be removed)
				'tmm_custom'   => true,
			);
			
bbp_get_breadcrumb($args);

其实我们也可以用home_text来指定首页链接的文本内容。

结束

你学会了吗?

发表评论

邮箱地址不会被公开。 必填项已用*标注