How can I get the level(2) entries from only 1 entry from a level(1) structure item in Craft CMS using Twig?
I have a structure and I want to target all of the level 2 items only under 1 of the entries but show all of the level 1 entries
Dogs:
Collie, Poodle, Staffy
Birds: Pigeon, Seagull, Parrot
Cats: Tabby, Fluffy, Bermise
So my menu shows Dogs, Birds, Cats and in the Cats <li> show all the cats
I get all of the level(2) items under any entry back. Not just Cats
{% set interests = craft.entries.section('interests').level(1) %}
<div>
<ul>
{% for interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">
{{ interest.title }}
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<ul>
<li>
<a href="/">Cats</a>
<ul>
{% for interest in craft.entries.section('interests').level(2) %}
<li>
<a href="{{ interest.url }}">
{{interest}}
</a>
</li>
{% endfor %}
</ul>
</li>
</ul>
</div>
How can I get back only ones under Cats?
Also is there a cleaner way to do this? Without checking if the title is != 'Cats' and not hard coding "cats"
Can you please explain how this works too and why mine is awful?
twig craftcms
add a comment |
I have a structure and I want to target all of the level 2 items only under 1 of the entries but show all of the level 1 entries
Dogs:
Collie, Poodle, Staffy
Birds: Pigeon, Seagull, Parrot
Cats: Tabby, Fluffy, Bermise
So my menu shows Dogs, Birds, Cats and in the Cats <li> show all the cats
I get all of the level(2) items under any entry back. Not just Cats
{% set interests = craft.entries.section('interests').level(1) %}
<div>
<ul>
{% for interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">
{{ interest.title }}
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<ul>
<li>
<a href="/">Cats</a>
<ul>
{% for interest in craft.entries.section('interests').level(2) %}
<li>
<a href="{{ interest.url }}">
{{interest}}
</a>
</li>
{% endfor %}
</ul>
</li>
</ul>
</div>
How can I get back only ones under Cats?
Also is there a cleaner way to do this? Without checking if the title is != 'Cats' and not hard coding "cats"
Can you please explain how this works too and why mine is awful?
twig craftcms
add a comment |
I have a structure and I want to target all of the level 2 items only under 1 of the entries but show all of the level 1 entries
Dogs:
Collie, Poodle, Staffy
Birds: Pigeon, Seagull, Parrot
Cats: Tabby, Fluffy, Bermise
So my menu shows Dogs, Birds, Cats and in the Cats <li> show all the cats
I get all of the level(2) items under any entry back. Not just Cats
{% set interests = craft.entries.section('interests').level(1) %}
<div>
<ul>
{% for interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">
{{ interest.title }}
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<ul>
<li>
<a href="/">Cats</a>
<ul>
{% for interest in craft.entries.section('interests').level(2) %}
<li>
<a href="{{ interest.url }}">
{{interest}}
</a>
</li>
{% endfor %}
</ul>
</li>
</ul>
</div>
How can I get back only ones under Cats?
Also is there a cleaner way to do this? Without checking if the title is != 'Cats' and not hard coding "cats"
Can you please explain how this works too and why mine is awful?
twig craftcms
I have a structure and I want to target all of the level 2 items only under 1 of the entries but show all of the level 1 entries
Dogs:
Collie, Poodle, Staffy
Birds: Pigeon, Seagull, Parrot
Cats: Tabby, Fluffy, Bermise
So my menu shows Dogs, Birds, Cats and in the Cats <li> show all the cats
I get all of the level(2) items under any entry back. Not just Cats
{% set interests = craft.entries.section('interests').level(1) %}
<div>
<ul>
{% for interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">
{{ interest.title }}
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<ul>
<li>
<a href="/">Cats</a>
<ul>
{% for interest in craft.entries.section('interests').level(2) %}
<li>
<a href="{{ interest.url }}">
{{interest}}
</a>
</li>
{% endfor %}
</ul>
</li>
</ul>
</div>
How can I get back only ones under Cats?
Also is there a cleaner way to do this? Without checking if the title is != 'Cats' and not hard coding "cats"
Can you please explain how this works too and why mine is awful?
twig craftcms
twig craftcms
asked Nov 16 '18 at 9:47
JessicaJessica
307316
307316
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I would recommend using Craft's nav tag to accomplish this. A clean way while not hardcoding cats, would be creating a "menu" structure where you create new entries with an entry field field to select an interest entry per entry, except the cats and fetch that entries section instead. Hope this helps.
{% set interests = craft.entries.section('interests').level(1) %}
<ul id="nav">
{% nav interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">{{ interest.title }}</a>
{% ifchildren %}
{% if interest.level == 2 }
<ul>{% children %}</ul>
{% endif %}
{% endifchildren %}
</li>
{% endif %}
{% endnav %}
</ul>add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53335209%2fhow-can-i-get-the-level2-entries-from-only-1-entry-from-a-level1-structure-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I would recommend using Craft's nav tag to accomplish this. A clean way while not hardcoding cats, would be creating a "menu" structure where you create new entries with an entry field field to select an interest entry per entry, except the cats and fetch that entries section instead. Hope this helps.
{% set interests = craft.entries.section('interests').level(1) %}
<ul id="nav">
{% nav interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">{{ interest.title }}</a>
{% ifchildren %}
{% if interest.level == 2 }
<ul>{% children %}</ul>
{% endif %}
{% endifchildren %}
</li>
{% endif %}
{% endnav %}
</ul>add a comment |
I would recommend using Craft's nav tag to accomplish this. A clean way while not hardcoding cats, would be creating a "menu" structure where you create new entries with an entry field field to select an interest entry per entry, except the cats and fetch that entries section instead. Hope this helps.
{% set interests = craft.entries.section('interests').level(1) %}
<ul id="nav">
{% nav interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">{{ interest.title }}</a>
{% ifchildren %}
{% if interest.level == 2 }
<ul>{% children %}</ul>
{% endif %}
{% endifchildren %}
</li>
{% endif %}
{% endnav %}
</ul>add a comment |
I would recommend using Craft's nav tag to accomplish this. A clean way while not hardcoding cats, would be creating a "menu" structure where you create new entries with an entry field field to select an interest entry per entry, except the cats and fetch that entries section instead. Hope this helps.
{% set interests = craft.entries.section('interests').level(1) %}
<ul id="nav">
{% nav interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">{{ interest.title }}</a>
{% ifchildren %}
{% if interest.level == 2 }
<ul>{% children %}</ul>
{% endif %}
{% endifchildren %}
</li>
{% endif %}
{% endnav %}
</ul>I would recommend using Craft's nav tag to accomplish this. A clean way while not hardcoding cats, would be creating a "menu" structure where you create new entries with an entry field field to select an interest entry per entry, except the cats and fetch that entries section instead. Hope this helps.
{% set interests = craft.entries.section('interests').level(1) %}
<ul id="nav">
{% nav interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">{{ interest.title }}</a>
{% ifchildren %}
{% if interest.level == 2 }
<ul>{% children %}</ul>
{% endif %}
{% endifchildren %}
</li>
{% endif %}
{% endnav %}
</ul>{% set interests = craft.entries.section('interests').level(1) %}
<ul id="nav">
{% nav interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">{{ interest.title }}</a>
{% ifchildren %}
{% if interest.level == 2 }
<ul>{% children %}</ul>
{% endif %}
{% endifchildren %}
</li>
{% endif %}
{% endnav %}
</ul>{% set interests = craft.entries.section('interests').level(1) %}
<ul id="nav">
{% nav interest in interests %}
{% if interest.title != 'Cats' %}
<li>
<a href="{{ interest.url }}">{{ interest.title }}</a>
{% ifchildren %}
{% if interest.level == 2 }
<ul>{% children %}</ul>
{% endif %}
{% endifchildren %}
</li>
{% endif %}
{% endnav %}
</ul>edited Nov 17 '18 at 2:22
answered Nov 16 '18 at 14:42
QorridorQorridor
37616
37616
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53335209%2fhow-can-i-get-the-level2-entries-from-only-1-entry-from-a-level1-structure-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown