如何检查当前URL是否为首页URL?您也想知道这个问题,并为您的Magento 2 商店寻找完美的方式。如果您曾经不确定某个页面是否是主页,这篇文章将指导您使用 PHP 代码来澄清它。

开始吧!

检查当前 url 是否为 Magento 2 主页的 3 个步骤

  • 第 1 步:声明Example_HelloWorld
  • .phtml步骤2:在模板文件中声明函数
  • 步骤 3:获取index.php文件中的输出

第 1 步:声明Example_HelloWorld

您将使用 module 的块类Example_HelloWorld,然后可能将类的对象注入Logo到模块的块类的构造函数中。

app/code/Example/HelloWorld/Block/HelloWorld.php

<?php
namespace Example\HelloWorld\Block;
class HelloWorld extends \Magento\Framework\View\Element\Template
{
	protected $_logo;	
	
	public function __construct(
		\Magento\Backend\Block\Template\Context $context,
		\Magento\Theme\Block\Html\Header\Logo $logo,
		array $data = []
	)
	{		
		$this->_logo = $logo;
		parent::__construct($context, $data);
	}
	
	/**
     * Check if current url is url for home page
     *
     * @return bool
     */
    public function isHomePage()
    {	
		return $this->_logo->isHomePage();
	}
}
?>

您可以在 中看到更多功能vendor/magento/module-theme/Block/Html/Header/Logo.php

.phtml步骤2:在模板文件中声明函数

.phtml在模板文件中运行以下函数

if ($block->isHomePage()) {
    // do something
}

步骤 3:获取index.php文件中的输出

要获取当前页面(主页或其他页面)底部的输出,可以在文件中编写以下脚本index.php

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$helloWorldBlock = $objectManager->get('Example\HelloWorld\Block\HelloWorld');
var_dump($helloWorldBlock->isHomePage());

请按照三个步骤即可查看当前网址。