Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

288
Views
¿Hugo no me deja listar páginas de una sección, rechazando argumentos?

layouts/index.html :

 {{define "main"}} {{ $products := .Site.RegularPages.ByTitle "Section" "products" }} {{with .Params.banner}} [...] <div class="dropdown-menu"> {{ range (where $products ) }} <a class="dropdown-item " href="{{ .Permalink }}">{{ .Title }}</a> {{ end }} [...]

Produce este error:

 ERROR: executing "main" at <.Site.RegularPages.ByTitle>: wrong number of args for ByTitle: want 0 got 2

De acuerdo, intentemos eliminar esos dos argumentos (necesarios), supongo.

 {{ $products := .Site.RegularPages.ByTitle }}

Ahora, el error dice:

 ERROR: executing "main" at <where>: wrong number of args for where: want at least 2 got 1

¿Que está pasando aqui? El primer bit de código funciona bien en mis layouts/header.html , pero ahora Hugo parece estar confundido.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Te estás perdiendo una instrucción where. $productos es una variable

 .Site.RegularPages.ByTitle <- isn't a value.

Por lo tanto los errores son claros, ¿no?

Pero para manejar su punto original:

Está a medio camino entre asignar una variable y ejecutar una función.

Asi que:

 $products := .Site.RegularPages <- existing "Array/Map/Slice" assigned to a variable

.ByTitle es un parámetro para pasar a una función (creo).

Si desea esa agrupación organizada por título, que sería una función para ejecutar antes de asignar a una variable.

Recorre las páginas normales por título como desee:

 {{range .Site.RegularPages.ByTitle}} {{ . }} {{ end }}

Si aún desea una "matriz" ordenada por título: consulte los documentos:

 https://gohugo.io/functions/where/ (which I find to be excellent) and https://gohugo.io/functions/sort/#readout

Usarías Ordenar. También podrías simplemente hacer esto:

 {{range where .Site.RegularPages.ByTitle "Section" "products" }} {{ . }} {{ end }}

O más específicamente:

 {{ $product := where .Site.RegularPages.ByTitle "Section" .Section }}

Resumen: para responder a su pregunta: su código no funciona porque está mezclando la asignación de una variable con la ejecución de una función.

Tiene casi una instrucción where en la asignación de la variable. Por eso los errores que estás recibiendo.

Notas adicionales:

Como no tengo acceso a su repositorio, realmente no sé lo que está tratando de hacer, le sugiero que use los documentos anteriores para ayudarlo.

El "error anterior" que creo que está tratando de resolver es esta declaración "con" de .Params.Banners, ya que está "eliminando el contexto". Creo que hay una lógica defectuosa allí.

Sin embargo, si aún desea evitar esto, use "ordenar" para ordenar el valor o $productos (asignándole las páginas regulares con la instrucción where).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!