检查当前URL是否首页

概览

  • 第一步,在 Mageplaza_HelloWorld 中声明

  • 第二步,在模板 phtml 文件中声明方法

  • 第三步,在 index.php 文件中输出

第一步,在 Mageplaza_HelloWorld 中声明

你会用到模块 Mageplaza_HelloWorld 的一个 block 类,然后把 Logo 类的对象插入到模块 block 类的构造函数中。

app/code/Mageplaza/HelloWorld/Block/HelloWorld.php

<?php
namespace Mageplaza\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 文件中声明方法

在你的 phtml 文件中,执行下面这个方法

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

第三步,在 index.php 文件中输出

在 index.php 文件中使用一下代码,你可以输出当前页面(首页或者其他页面)的结果

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

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: