我的wordpress网站上有一些问题网站url为http://www.sharedmachine.in/
。主页上有搜索选项。现在的置换链接结构是这样的-http://www.sharedmachine.in/?p=123
。
现在,单击搜索按钮后,它将重定向到"高级搜索"页面。但事实并非如此。
因此,我将永久链接结构更改为自定义-/%postname%/
。
但它仍然不起作用。
它应该重定向到的URL是
http://www.sharedmachine.in/advanced-search/?filter_search_type(一些过滤器)
但相反,它显示了
http://www.sharedmachine.in/?filter_search_type(过滤器)
URL中没有页面名称。
现在获取url的代码是-
$adv_submit=wpestate_get_adv_search_link();
和功能-
function wpestate_get_adv_search_link(){
$pages = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => 'advanced_search_results.php'
));
if( $pages ){
$adv_submit = esc_url ( get_permalink( $pages[0]->ID) );
}else{
$adv_submit='';
}
return $adv_submit;
}
如果我更改线路
$adv_submit=wpestate_get_adv_search_link();
至
$adv_submit='http://www.sharedmachine.in/index.php/advanced-search/';
它是有效的。
这里可能有什么问题?
通常不会填充$pages
变量。我想试试
$page = get_page_by_path('advanced-search');
if ($page) {
$adv_submit = esc_url ( get_permalink( $page->ID) );
} else {
// do something else
}
在这种情况下,您将根据页面的段塞查找页面,而不是页面元,您可能已经或可能没有设置