es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El widget de Publicaciones recientes en WordPress también muestra borradores, privados, etc.

Dos horas perdidas buscando una respuesta, pero sin éxito.

El problema es el siguiente.
He actualizado WP a la última versión para uno de mis antiguos sitios web de WordPress, y mi widget de entradas recientes está mostrando todas las entradas: publicadas, heredadas, borradores, revisiones, etc., en lugar de mostrar solo las entradas “publicadas”.

Miré estos archivos class-wp-widget.php y class-wp-widget-recent-posts.php, pero son estándar y no deberían contener ningún error.
Quizás algo esté anulando el comportamiento estándar, pero no sé cómo es posible.
Mi sitio web es bastante simple, no contiene ningún plugin (excepto “editor clásico” y “widgets clásicos”). Desactivarlos no cambia nada.

Este archivo class-wp-widget-recent-posts.php tiene el siguiente código que debería funcionar, pero desafortunadamente no funciona.

apply_filters(
    'widget_posts_args',
    array(
        'posts_per_page'      => $number,
        'no_found_rows'       => true,
        'post_status'         => 'publish',
        'ignore_sticky_posts' => true,
    ),
    $instance
)

Por ejemplo, esta línea funciona ignore_sticky_posts => true y cuando cambio su valor a false, cambia el comportamiento.
Pero si cambio esto post_status => 'publish', nada cambia y el sitio web sigue mostrando entradas con TODOS los posibles estados de publicación.

¿Alguna sugerencia?

ACTUALIZACIÓN:

Arreglé esto editando class-wp-widget-recent-posts.php y agregué allí otro parámetro suppress_filters => true.
No es la mejor solución, porque esto se sobrescribirá después de la próxima actualización, pero ahora no sé cómo depurarlo y arreglarlo de otra manera.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en php, wordpress y widgets, el problema en cuestión es que después de actualizar WordPress a la última versión en un sitio web antiguo, el widget de entradas recientes está mostrando todas las entradas: publicadas, heredadas, borradores, revisadas, etc., en lugar de solo las entradas publicadas.

    La persona ha realizado una búsqueda durante dos horas e inspeccionado los archivos class-wp-widget.php y class-wp-widget-recent-posts.php, pero son estándar y no deberían tener ningún error. Aunque sospechan que algo puede estar anulando el comportamiento estándar, no están seguros de cómo podría ser posible. El sitio web es relativamente básico y no contiene ningún plugin aparte de “classic editor” y “classic widgets”, y desactivarlos no tuvo ningún efecto.

    El archivo class-wp-widget-recent-posts.php tiene el siguiente código, que debería funcionar pero no lo hace:

    apply_filters(
            'widget_posts_args',
            array(
                    'posts_per_page'      => $number,
                    'no_found_rows'       => true,
                    'post_status'         => 'publish',
                    'ignore_sticky_posts' => true,
            ),
            $instance
    )
    

    Si bien editar class-wp-widget-recent-posts.php y agregar un parámetro adicional 'suppress_filters' => true solucionaría el problema, no es la mejor solución, ya que se sobrescribirá en la próxima actualización. La persona no sabe cómo depurar el problema de otra manera.

Comments are closed.