Add top link with frontend theme:
- app/design/frontend/[VendorName]/[themename]/registration.php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::THEME,
'frontend/[VendorName]/[themename]',
__DIR__
);
- app/design/frontend/[VendorName]/[themename]/theme.xml
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>Theme Title</title>
<parent>[VendorName]/[themename]</parent> <!-- Magento/blank OR Magento/luma -->
</theme>
- app/design/frontend/[VendorName]/[themename]/Magento_Theme/layout/default.xml
If you've extended Luma Theme:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="header.links">
<block class="Magento\Framework\View\Element\Html\Link" name="header-new-link">
<arguments>
<argument name="label" xsi:type="string" translate="true">New Link</argument>
<argument name="path" xsi:type="string" translate="true">new-link</argument>
</arguments>
</block>
</referenceBlock>
</body>
</page>
If you've extended Blank Theme:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="top.links">
<block class="Magento\Framework\View\Element\Html\Link" name="header-new-link">
<arguments>
<argument name="label" xsi:type="string" translate="true">New Link</argument>
<argument name="path" xsi:type="string" translate="true">new-link</argument>
</arguments>
</block>
</referenceBlock>
</body>
</page>
- Magento CLI
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:flush