在 Wordpress 的 div 中添加搜索表单
Adding a search form inside a div in Wordpress
我想使用下面的代码在 div 中添加一个搜索表单:
printf( '<div class="entry"><p>%s</p>%s</div>', apply_filters( 'genesis_noposts_text', __( 'Try again below.', 'genesis' ) ), get_search_form() );
但每次我添加 get_search_form()
它都会在 div 之前生成,如下所示:
<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() );
}
解决方案是使用get_search_form( false )
get_search_form()
将 输出 搜索表单。由于您试图在字符串上下文中使用结果,因此您需要函数以字符串形式 return html,您正在通过 printf
.
get_search_form
的唯一参数控制该行为。默认情况下它会打印,但如果您传递 false
,它将 return 您需要的字符串。
要将搜索表单作为字符串使用 get_search_form( false )
。
使用可以查看此功能的文档here。
我想使用下面的代码在 div 中添加一个搜索表单:
printf( '<div class="entry"><p>%s</p>%s</div>', apply_filters( 'genesis_noposts_text', __( 'Try again below.', 'genesis' ) ), get_search_form() );
但每次我添加 get_search_form()
它都会在 div 之前生成,如下所示:
<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() );
}
解决方案是使用get_search_form( false )
get_search_form()
将 输出 搜索表单。由于您试图在字符串上下文中使用结果,因此您需要函数以字符串形式 return html,您正在通过 printf
.
get_search_form
的唯一参数控制该行为。默认情况下它会打印,但如果您传递 false
,它将 return 您需要的字符串。
要将搜索表单作为字符串使用 get_search_form( false )
。
使用可以查看此功能的文档here。