바닥 글 Magento 2에서 현재 연도로 자동 업데이트하는 방법은 무엇입니까?


11

Magento 2 사이트의 바닥 글 섹션에서 저작권 연도를 자동으로 업데이트하는 방법

여기에 이미지 설명을 입력하십시오

답변:


20

하나의 가능한 핵이 연도를 동적으로 수정하는 데 도움이 될 수 있습니다.

-> 관리자-> 일반으로 이동하여 디자인-> 바닥 글 확장을 선택 하고 아래 코드를 붙여 넣습니다.

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

캐시를 제거하고 확인하십시오.


안녕하세요 귀하의 답변에 감사드립니다 나는 이것을 시도합니다
MazeStricks

이것으로 작업이 완료되지만 검색 엔진 사이트 스파이더가 올바른 저작권 연도를 선택할지 궁금합니다.
jschrab

2
html 요소를 허용하지 않으므로 2.2.2에서는 작동하지 않습니다.
Juliano Vargas

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 메소드에서 후 플러그인을 작성하는 것입니다 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;
    }
}

나는 Krishna ijjada의 정규식을 올해에 빌 렸습니다. 또한 저작권 메시지에 현재 연도가 추가되어 저작권이 시작된 연도도 계속 표시됩니다.


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.