here is my answer and hope can be a little help for those who are new to magento2.
//vendor/magento/theme-frontend-blank/web/js/theme.js
there is a line
$('.panel.header > .header.links').clone().appendTo('#store\.links');
if .header.links is moved to block other than .panel.header or even is wrapped in a new div, the above line is required to be updated to. for my case, it should be like
$('.header.content >.star-customer-login-links >
.header.links').clone().appendTo('#store\.links');
This is the solution for this issue. but there may be another place have to be updated too. it's
/vendor/magento/theme-frontend-blank/web/js/navigation-menu.js
Try something like this:
<block class="Magento\Framework\View\Element\Html\Links" name="ahern-access-nav">
<arguments>
<argument name="css_class" xsi:type="string">{{your css class here}}</argument>
</arguments>
<block class="Magento\Framework\View\Element\Html\Link\Current" name="ahern-access-link">
<arguments>
<argument name="label" xsi:type="string">Ahern Access</argument>
<argument name="path" xsi:type="string">http://ahernaccess.com</argument>
<argument name="target" xsi:type="string">_blank</argument>
<argument name="title" xsi:type="string">Log In to Ahern Access</argument>
</arguments>
</block>
</block>
I'm doing some digging in as i have yet to see the target argument used in the wild. If you look at this file /vendor/magento/framework/View/Element/Html/Link/Current.php you will see the list of possible arguments you can make in the comments at the top
/**
* Block representing link with two possible states.
* "Current" state means link leads to URL equivalent to URL of currently displayed page.
*
* @method string getLabel()
* @method string getPath()
* @method string getTitle()
* @method null|array getAttributes()
* @method null|bool getCurrent()
* @method \Magento\Framework\View\Element\Html\Link\Current setCurrent(bool $value)
*/
Which target is not in. But looking at a few other default.xml
files, i see things like this in /vendor/magento/module-theme/view/frontend/layout/default.xml:
<block class="Magento\Framework\View\Element\Template" name="skip_to_content" template="Magento_Theme::html/skip.phtml">
<arguments>
<argument name="target" xsi:type="string">contentarea</argument>
<argument name="label" translate="true" xsi:type="string">Skip to Content</argument>
</arguments>
</block>
Which relate back to the Template class. So the concept is there, but i'm not 100% on how M2 is implementing that.
For me I have to play around with XML for a while before i land on the exact solution that i need. So i hope this helps.
Another idea would be to add the link directly to the template file (i think you are needing /vendor/magento/module-theme/view/frontend/templates/html/header.phtml in this case). It's not an elegent solution, but given that the target="_blank" is not a part of the class, you would have to create a class override to get this functionality in the XML's.
<?php case 'other': ?>
<?php echo $block->getChildHtml(); ?>
<li>
<a href="http://ahernaccess.com" target="_blank">Log In to Ahern Access</a>
</li>
<?php break; ?>
Best Answer
To remove url from top links you can do this in local.xml of you theme using following code -
You can add custom link by adding following code in local.xml file -
check out this for refernce: http://www.classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way