Hi @v-monli-msft,
@1. Thank you for your suggestion.
@2. I know that post, a very good source of initial information. Unfortunately, the reality seems more complicated and I cannot achieve a good result using the same method. My changes of Web page permissions, my changes of weblink sets etc. do not populate to the portal and I can still see the old navigation in the portal header and I don't know why. Is there a more detailed source of information about a process of publishing changes? Why do I have 7 items in the navigation bar:

while I have only 4 weblinks in the current Default weblink set?

I need help with this.
Alternatively, I have tried to use more Weblink sets and to dynamically choose an appopriate weblink set according to a user's role. I have used this Liquid code (a "new_rolenaportalu" is a custom field in the Contact entity, a picklist with my 3 available web roles) in the header html code:
{{ user.new_rolenaportalu.value }}
{% if user.new_rolenaportalu.value == 100000000 %}
{% assign primary_nav = weblinks["Default"] %}
{% endif %}
{% if user.new_rolenaportalu.value == 100000001 %}
{% assign primary_nav = weblinks["Primary Navigation"] %}
{% endif %}
{% if user.new_rolenaportalu.value == 100000002 %}
{% assign primary_nav = weblinks["Custom Navigation"] %}
{% endif %}
It works, I can switch the weblink sets for various types of users, but again, not everything works fine. When a custom weblink set is chosen (a "Custom Navigation" set), nothing is rendered, only a black background will stay there:

Any idea, what is going on? Maybe @nickdoelman or @dileeps could help?
Thanks