Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add query-support on non-existing page params in where template func #1232

Closed
ashishthedev opened this issue Jun 27, 2015 · 1 comment
Closed

Comments

@ashishthedev
Copy link

Use Case:

There are about 200 pages in the website.
But some pages like "privacy", "about" and "terms and conditions" are appearing on the home page.
You dont want these pages on home page, so you declare a page specific param on these pages:

front matter:

+++
...
notOnHomePage = "true"
+++

and in index.html

...
{{range first 10 (where .Paginator.Pages ".Params.notOnHomePage" "!=" "true")}}
...

But now not even single post is shown on the homepage.

Original Discussion:
http://discuss.gohugo.io/t/how-to-filter-pages-on-homepage-based-on-page-params/1369

@bep bep changed the title "where" functionality is broken when page specific parameter is not present on the pages. Add query-support on non-existing page params in where template func Jun 27, 2015
tatsushid added a commit to tatsushid/hugo that referenced this issue Jun 29, 2015
`where` template function's internal condition check function always
returns `false` when a target value doesn't exist or it's nil value but
this behavior makes it difficult to filter values which doesn't have a
particular parameter.

To solve it, this adds nil value comparison to the function.
`where Values ".Param.key" nil` like clause can be used for the case
above.

Only "=", "==", "eq", "!=", "<>", "ne" operators are allowed to be used
with `nil`. If an other operator is passed with `nil`, the condition
check function returns `false` like before.

Fix gohugoio#1232
@bep bep closed this as completed in dd732e8 Jun 29, 2015
tychoish pushed a commit to tychoish/hugo that referenced this issue Aug 13, 2017
`where` template function's internal condition check function always
returns `false` when a target value doesn't exist or it's nil value but
this behavior makes it difficult to filter values which doesn't have a
particular parameter.

To solve it, this adds nil value comparison to the function.
`where Values ".Param.key" nil` like clause can be used for the case
above.

Only "=", "==", "eq", "!=", "<>", "ne" operators are allowed to be used
with `nil`. If an other operator is passed with `nil`, the condition
check function returns `false` like before.

Fix gohugoio#1232
@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 14, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants