Un usuario preguntó 👇
Quiero entradas un project
CPT a project_type
términos taxonómicos.
Haz que las entradas aparezcan a través del atajo:
[ajax_load_more post_type="project" taxonomy="project_type" taxonomy_terms="art, buildings, commercial, illustrations, residential" scroll="false" transition="fade" posts_per_page="6" button_label="Load More"]
Para la lista de filtros, aquí está el HTML:
<ul class="alm-filter-nav">
<li><a href="#" data-post-type="project" data-taxonomy="project_type" data-taxonomy-terms="art, buildings, commercial, illustrations, residential">All</a></li>
<li><a href="#" data-post-type="project" data-taxonomy="project_type" data-taxonomy-terms="art">Art</a></li>
<li><a href="#" data-post-type="project" data-taxonomy="project_type" data-taxonomy-terms="buildings">Buildings</a></li>
<li><a href="#" data-post-type="project" data-taxonomy="project_type" data-taxonomy-terms="commercial">Commercial</a></li>
<li><a href="#" data-post-type="project" data-taxonomy="project_type" data-taxonomy-terms="illustrations">Illustrations</a></li>
<li><a href="#" data-post-type="project" data-taxonomy="project_type" data-taxonomy-terms="residential">Residential</a></li>
</ul>
En cola alm.js
con jQuery como dependencia.
Código completo en alm.js: .
Nota que he cambiado
[].forEach.call(buttons, function (button) {
a
[].forEach.call(filter_buttons, function (button) {
porque creo que así debería ser y además, de lo contrario, se estaba cometiendo un error.
De todos modos, volviendo al problema principal: la consola del navegador muestra este error: https://d.pr/i/EpuK82.
Hacer clic en los botones de filtro no hace más que agregar # a la URL de la página en la barra de direcciones.
Por favor avise.
(@dcooney)
Hace 1 año, 8 meses
Hola @srikat ¿Puedes mostrarme un enlace a esto?
El código exacto que se encuentra en el ejemplo de código se usa en dos sitios de desarrollo y funciona.
https://connekthq.com/plugins/ajax-load-more/docs/public-functions/#filter
Esta línea:
var filter_buttons = document.querySelectorAll('alm-filter-nav li a');
Debería ser:
var filter_buttons = document.querySelectorAll('.alm-filter-nav li a');
Parece que ha olvidado el. de la definición de clase.
(@srikat)
Hace 1 año, 7 meses
Hola @dcooney
URL: https://almfiltering.demo.site/projects/
Dado que jQuery ya no es necesario, lo estoy cargando así:
wp_enqueue_script( 'alm-filtering', get_stylesheet_directory_uri() . '/js/alm.js', array(), CHILD_THEME_VERSION, true );
Omití el punto en el selector.
El problema aún existe.
(@dcooney)
Hace 1 año, 7 meses
@srikat No estoy seguro de por qué se produce el error inicial almFilterComplete, pero sus filtros no funcionan debido a lo siguiente:
var activeEl = document.querySelector('.alm-filter-nav li.active');
if (active) {
activeEl.classList.remove('active');
}
Debería ser:
var activeEl = document.querySelector('.alm-filter-nav li.active');
if (activeEl) {
activeEl.classList.remove('active');
}
Esta respuesta fue modificada hace 1 año, 7 meses.
(@srikat)
Hace 1 año, 7 meses
¡Eso está arreglado! El filtrado ahora funciona.
El error de la consola ha sufrido un cambio
almFilterComplete = function () {
a
var almFilterComplete = function () {
¿Hay alguna forma de evitar que # se agregue al final de una URL cuando se hace clic en un enlace de filtro?
Tratando de cambiar
function filterClick() {
a
function filterClick(event) {
event.stopPropagation();
sin suerte.
(@srikat)
Hace 1 año, 7 meses
Tonto para mí.
e.preventDefault();
Es lo que debería estar usando.
Gracias por toda tu ayuda nuevamente, Darren.
(@dcooney)
Hace 1 año, 7 meses
¡Gracias por seguir!
Actualicé los documentos de recuperación para usar window.
para cada función … creo que esa es la cuestión.
https://connekthq.com/plugins/ajax-load-more/docs/callback-functions/
(@srikat)
Hace 1 año, 7 meses
Frio.
Es posible que desee actualizar el JS en https://connekthq.com/plugins/ajax-load-more/examples/filtering/#code.
(@dcooney)
Hace 1 año, 7 meses
Ah, sí. ¡gracias!
¿Solucionó tu problema??
0 / 0