我想编写一个wordpress插件,该插件能够向浏览器传递URL要求之外的其他页面。插件不应将浏览器转发到另一个URL(浏览器的URL不应更改)。
让我们假设我们有2个wordpress页面:“ page1”和“ page2”。浏览器将从表单发送一些后数据到www.example.com/wordpress/page1。该插件检查发布数据,并决定交付page2而不是page1。
Wordpress提供全局变量$ pagename,该变量存储URL中请求的页面的名称。不幸的是,wordpress不在乎是否将$ pagename设置为另一个值(如我的代码所示)。它仍然提供page1而不是page2 ...
<?php
/*
Plugin Name: example plugin
Description: This is just an example.
*/
function msu_wp_loaded() {
global $pagename;
if($pagename == "page1" && some_other_condition ) {
$pagename = "page2";
}
}
add_action('wp_loaded','msu_wp_loaded');
?>
对此有什么解决办法吗?
答案 0 :(得分:2)
我将创建两个不同的页面,每个页面具有不同的内容。然后,我将使用pre_get_posts获取一个 postid 参数。这样,您就不必处理重定向。
return \App\Project::with(["projectLeaders" => function($query){
$query->where('Lastname', 'Smith') //check lastname
}])->join('companies', 'company_id', '=', 'companies.id')
->join('project_status', 'project_status.id', '=', 'projects.status_id')
->select('companies.*', 'project_status.name AS statusName', 'projects.*');