Wordpress get_search_form()不';似乎没有将参数考虑在内
我正在手动创建菜单并尝试包含搜索表单 这是从Wordpress文档“构建简单菜单列表”中获取的 在完成菜单和添加搜索表单之前,我添加了一个额外的Wordpress get_search_form()不';似乎没有将参数考虑在内,wordpress,search,menu,menuitem,Wordpress,Search,Menu,Menuitem,我正在手动创建菜单并尝试包含搜索表单 这是从Wordpress文档“构建简单菜单列表”中获取的 在完成菜单和添加搜索表单之前,我添加了一个额外的元素 // Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu) // This code based on wp_nav_menu's code to get Menu ID
// Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu)
// This code based on wp_nav_menu's code to get Menu ID from menu slug
$menu_name = 'main-menu';
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menu_items = wp_get_nav_menu_items($menu->term_id);
$menu_list = '<ul id="menu-' . $menu_name . '">';
foreach ( (array) $menu_items as $key => $menu_item ) {
$title = $menu_item->title;
$url = $menu_item->url;
$menu_list .= '<li><a href="' . $url . '">' . $title . '</a></li>';
}
$menu_list .= '<li>' . get_search_form(false) . '</li>';
$menu_list .= '</ul>';
} else {
$menu_list = '<ul><li>No Menu</li></ul>';
}
echo $menu_list;
//根据$menu\u名称获取导航菜单(与wp\u导航菜单的“主题位置”或“菜单”参数相同)
//此代码基于wp_nav_menu的代码,从menu slug获取菜单ID
$menu_name='主菜单';
if($locations=get_nav_menu_locations())和&isset($locations[$menu_name])){
$menu=wp_get_nav_menu_object($locations[$menu_name]);
$menu\u items=wp\u get\u nav\u menu\u menu\u items($menu->term\u id);
$menu_list='- 无菜单
';
}
echo$菜单列表;
';
}否则{
$menu_list='
问题出在输出上
有人能告诉我为什么即使我指定echo=false,搜索仍在菜单之前打印吗?我通过从echo中取出get\u search\u form()并在其自己的php块中打印来解决这个问题 我有一种感觉(没有完全理解),我是在附和一个最初被附和的声明,这一事实导致了这种有趣的行为。将它放在自己的php块中,不回显,而是直接调用它,解决了这个问题:
<?php get_search_form(); ?>
欢迎对发生的事情有任何想法、建议或指导?我通过从echo中取出get_search_form()并将其打印到自己的php块中,解决了这个问题 我有一种感觉(没有完全理解),我是在附和一个最初被附和的声明,这一事实导致了这种有趣的行为。将它放在自己的php块中,不回显,而是直接调用它,解决了这个问题:
<?php get_search_form(); ?>
欢迎您对所发生的事情提出任何想法、建议或指导?如果您的主题有searchform.php,您可能会点击: 如果您只是回显搜索表单,那么您的解决方法很好,但是如果您需要在变量中捕获输出,您可以使用以下方法解决此问题:
如果你的主题有一个searchform.php,你可能会点击: 如果您只是回显搜索表单,那么您的解决方法很好,但是如果您需要在变量中捕获输出,您可以使用以下方法解决此问题:
<?php
ob_start();
get_search_form();
$my_search_form = ob_get_clean();
?>