我使用此代码将特定网址重定向到我定制的Wordpress主题上的php文件:
add_action('wp', function() {
if ( trim(parse_url(add_query_arg(array()), PHP_URL_PATH), '/') === 'pagename' ) {
include(locate_template('mysciprt.php'));
exit();
}});
(我知道我可以使用重写规则,但出于某些原因我需要使用此代码。)
这项工作很棒。问题是该页面仍然具有404状态的http标头。这是一个问题,原因有几个(其中一些是:seo,后期脚本无法使用......)。
我的问题是:有什么办法可以解决吗?
我尝试了什么:
我尝试添加:
global $wp_query;
status_header(200);
$wp_query->is_page = true;
$wp_query->is_404 = false;
一开始没有帮助,然后我将action('wp'..
更改为action('init'...
并且它有效!但问题是我使用'wp'
而非'init'
的原因是因为我需要在此脚本上使用get_query_var()
而我在使用'init'
操作时无法使用select * from (
SELECT *, rn=ROW_NUMBER() over (partition by COLUMN1,COLUMN2,Column3 order by
Column3 desc)
FROM Table1
)
WHERE rn=1
答案 0 :(得分:1)
最后变得更简单然后我想:
刚补充说:
global $wp_query;
status_header( 200 );
$wp_query->is_page = true;
$wp_query->is_404=false;
在script.php文件本身之前。
答案 1 :(得分:0)
只需发送包含200状态代码的标头即可。试试这个:
public class AddressBookViewModel : BindableBase
{
INavigationService _navigationService;
public DelegateCommand EditAddressCommand { get; set; }
public DelegateCommand DeleteAddressCommand { get; set; }
public ObservableCollection<ListModel> ListItems {get;set;} = new ObservableCollection<ListModel>();
public DelegateCommand<ListModel> ListItemSelectCommand { get; set; }
public MyZypListsViewModel(INavigationService navigationService)
{
_navigationService = navigationService;
EditAddressCommand = new DelegateCommand(EditAddress);
DeleteAddressCommand = new DelegateCommand(DeleteAddress);
ListItemSelectCommand = new DelegateCommand<ListModel>(ListItemSelected);
}
private void EditAddress()
{
//Edit listitem
}
private void DeleteAddress()
{
//Delete listitem
}
}