EC-CUBE4でタイトルタグの内容を書き換える
EC-CUBE4でタイトルタグの内容を書き換える方法です。
まずCusotomizeディレクトリ内にEventListenerディレクトリを設置してください。
次に以下のようにTitleListner.phpを作成してEventListener内に設置してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?php namespace Customize\EventListener; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Eccube\Request\Context; /** * Description of TitleListner * * @author Akira Kurozumi <info@a-zumi.net> */ class TitleListner implements EventSubscriberInterface { public function __construct( Context $requestContext ) { $this->requestContext = $requestContext; } public static function getSubscribedEvents(): array { return [ KernelEvents::RESPONSE => [['onKernelResponse', 100000000]], ]; } public function onKernelResponse(FilterResponseEvent $event) { // フロントページでない場合はスルー if (!$this->requestContext->isFront()) { return; } $response = $event->getResponse(); $content = $response->getContent(); $response->setContent(preg_replace("/<title>(.*)<\/title>/", "<title>タイトル変更</title>", $content)); $event->setResponse($response); } } |
以上で完成です。
これによりフロントのすべてのページのタイトルが「タイトル変更」に書き換わります。
特定のページのみ書き換えたい場合は、ルーティング名を取得して条件分岐すれば対応できると思います。
コメントを投稿するにはログインが必要です。