Polylang语言切换器通过短码调用出现重复显示问题求助
解决Polylang语言切换器短码重复显示问题
你的猜测完全正确:pll_the_languages()函数默认会直接输出语言切换器内容,所以当你执行$message = pll_the_languages( array( 'hide_current' => 1 ) )时,已经在页面顶部输出了一次切换器;之后return语句又将返回值(函数默认返回的内容)交给短码输出,导致重复显示。
要让切换器仅在短码插入位置显示,只需给pll_the_languages()添加echo => false参数,让它返回字符串而非直接输出:
<?php function switcher() { $message = pll_the_languages( array( 'hide_current' => 1, 'echo' => false // 新增参数,阻止直接输出 ) ); return $message; } add_shortcode( 'switcher_shortcode', 'switcher' ); ?>
当echo设为false时,pll_the_languages()不会直接输出内容,而是将切换器的HTML字符串返回给变量$message,再通过短码的return语句在指定位置输出,这样就不会出现重复问题了。
内容的提问来源于stack exchange,提问作者Ragna
相关产品推荐
相关产品推荐

