我想使用以下代码在div中添加搜索表单:
printf( '<div class="entry"><p>%s</p>%s</div>', apply_filters( 'genesis_noposts_text', __( 'Try again below.', 'genesis' ) ), get_search_form() );
但每次我添加在div之前生成的get_search_form()
,如下所示:
<form></form>
<div class="entry"></div>
我发现的解决方法是拆分代码,但我想知道是否有更好的解决方案可以正常工作。
remove_action( 'genesis_loop_else', 'genesis_do_noposts' );
add_action( 'genesis_loop_else', 'mytheme_do_noposts' );
function mytheme_do_noposts() {
printf( '<div class="entry"><p>%s</p>', apply_filters( 'genesis_noposts_text', __( 'Try again below.', 'genesis' ) ) );
printf( '%s</div>', get_search_form() );
}
答案 0 :(得分:1)
解决方案是使用 get_search_form(false)
get_search_form()
将输出< / strong>搜索表单。由于您尝试在字符串上下文中使用结果,因此您需要该函数以字符串的形式返回html,您将通过 printf
。
get_search_form
的唯一参数控制该行为。默认情况下会打印,但是如果你传递 false
,它将返回你需要的字符串。
答案 1 :(得分:0)
要将搜索表单作为字符串使用get_search_form( false )
。
使用可以查看此功能的文档here。