フッターMagento 2で現在の年に自動更新する方法は?


回答:


20

考えられるハックの1つは、年を動的に変更するのに役立ちます。

-> [管理]-> [一般]に移動し、[デザイン]-> [フッター]セクションを展開して、以下のコードを貼り付けます。

Copyright © <script>document.write(new Date().getFullYear())</script> Magento. All rights reserved.

キャッシュを削除して確認します。


こんにちはあなたの答えをありがとうこれも試してみる
MazeStricks 16/12/26

これで仕事は終わりますが、検索エンジンサイトのスパイダーが正しい著作権年度を取得するかどうか疑問に思う必要があります。
jschrab

1
これは、html要素を受け入れないため、2.2.2では機能しません。
ジュリアーノバルガス

9

このファイルに次のコンテンツを配置します。

{theme_dir}/Magento_Theme/templates/html/copyright.phtml

<?php /* @escapeNotVerified */ echo preg_replace('/(^|\s)(\d{4})(\s|$)/m', " ".date('Y'). " ", $block->getCopyright()); ?>

2
私はこのソリューションが一番好きです。テキストを制御しながら、著作権年度を変更する柔軟性を提供します。これを拡張するために私が行うことは<?= /* @escapeNotVerified */ str_ireplace('{{year}}', date('Y'), $block->getCopyright()) ?>...そして、フッター管理者で "{{year}}"著作権テキストを使用します。そうすれば、自動更新年とともにテキストを完全に制御できます。
jschrab

7

このファイルに次のコンテンツを配置します。 {theme_dir}/Magento_Theme/templates/html/copyright.phtml

<small class="copyright">
    <span>Copyright &copy; You <?php echo date('Y') ?>, All Rights Reserved.</span>
</small>

次に、キャッシュをフラッシュします。


こんにちはこの回答をありがとう私はこれを試してみます。ありがとうAaron :)
MazeStricks

0

これを行う最善の方法は、のgetCopyrightメソッドでafterプラグインを作成することMagento\Theme\Block\Html\Footerです。テンプレートにロジックを追加することはお勧めできません。

etc/frontend/di.xmlファイルのカスタムモジュールに以下を追加します

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Theme\Block\Html\Footer">
        <plugin name="Vendor_Module::UpdateCopyrightWithCurrentYear" type="Vendor\Module\Plugin\Theme\Block\Html\Footer\UpdateCopyrightWithCurrentYear" />
    </type>
</config>

Plugin/Theme/Block/Html/Footer/UpdateCopyrightWithCurrentYear.phpあなたのモジュール内で作成してください:

<?php
namespace Vendor\Module\Plugin\Theme\Block\Html\Footer;

use Magento\Theme\Block\Html\Footer;

class UpdateCopyrightWithCurrentYear
{
    /**
     * @param Footer $subject
     * @param string $result
     * @return string $result
     */
    public function afterGetCopyright(Footer $subject, $result)
    {
        $result = preg_replace_callback(
            '/(^|\s)(\d{4})(\s|$)/m',
            function($matches) {
                return $matches[2] != date('Y')?$matches[1] . $matches[2].' - '.date('Y') . $matches[3]:$matches[0];
            },
            $result);
        return $result;
    }
}

私はクリシュナ・イジャダの正規表現を年に合わせて借りました。また、これにより、著作権メッセージに現在の年が追加され、著作権が開始した年も表示されたままになります。


0

タイムゾーンを考える必要があります。これが私の答えです({theme_dir}/Magento_Theme/templates/html/copyright.phtml):

<?php
/* @var $block \Magento\Theme\Block\Html\Footer */

use Magento\Framework\App\ObjectManager;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;

$year = ObjectManager::getInstance()->get( TimezoneInterface::class )->date()->format( 'Y' );
?>
<small class="copyright">
    <span><?= /* @escapeNotVerified */ $block->escapeHtml( __( 'Copyright &copy; %1 xxx.', $year ) ) ?></span>
</small>

0

これは私がやる方法です。上書きcopyright.phtml

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
?>
<small class="copyright">
    <span><?= /* @escapeNotVerified */ str_replace ( '{{year}}', date('Y'), $block->getCopyright()) ?></span>
</small>

次にContent->Design->Configuration、テーマの選択に進み、Edit->footer->copyrightこれを追加します。

Copyright © {{year}} Magento. All rights reserved.

できた!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.