Skip to content

Commit 4368c51

Browse files
committed
Prevent duplicate wp handle
1 parent 28b1fd0 commit 4368c51

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

‎src/WpStarter/Wordpress/Kernel.php‎

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class Kernel extends HttpKernel
1515
{
1616
use HasEarlyBootstrappers;
1717
protected $wpHandleHook=['template_redirect',1];
18+
protected $wpHandled=false;
1819
/**
1920
* @var \WpStarter\Wordpress\Application
2021
*/
@@ -51,24 +52,29 @@ public function handle($request, $processResponse=false)
5152
}
5253
}else{
5354
//Continue to run wp route stack
54-
$response=$this->handleWp($request,$response,$processResponse);
55+
$response = $this->handleWp($request, $response, $processResponse);
5556
}
57+
//handle may be called multiple times, init:1 and wp_loaded:30
5658
return $response;
5759
}
5860

5961
function handleWp($request, $response, $processResponse=false){
6062
if($processResponse) {
6163
//Requested to process response, we run at target hook
62-
$this->handleAndProcessWpAtTargetHook($request);
64+
$this->handleWpRouteAndResponse($request);
6365
}else{
6466
//No process return the response
6567
$response=$this->handleWpRoute($request);
6668
}
6769
return $response;
6870
}
6971

70-
function handleAndProcessWpAtTargetHook($request): void
72+
protected function handleWpRouteAndResponse($request): void
7173
{
74+
if($this->wpHandled){
75+
return ;
76+
}
77+
$this->wpHandled=true;
7278
$hook=(array)$this->wpHandleHook;
7379
add_action($hook[0]??'template_redirect', function ()use($request) {
7480
$response=$this->handleWpRoute($request);
@@ -116,7 +122,7 @@ protected function wpSendRequestThroughRouter($request)
116122
->then($this->dispatchToWpRouter());
117123
}
118124

119-
function dispatchToWpRouter($route = null)
125+
protected function dispatchToWpRouter($route = null)
120126
{
121127
return function ($request) use ($route) {
122128
return $this->wpRouter->dispatch($request);

0 commit comments

Comments
 (0)