¿Cómo editar o anular una función Core?

4

Quiero agregar un argumento de datos a los enlaces generados por la función paginate_links() . Luego, puedo extender más fácilmente mi paginación personalizada para usar AJAX.

Por lo que puedo decir, esta función no es conectable, ni tiene ningún gancho disponible.

Los enlaces generados por paginate_links() tienen este aspecto:

<a class="page-numbers" href="https://example.com/list/page/2/"><span class="screen-reader-text">Page </span>2</a>

Quiero agregar el argumento de la página de datos a la etiqueta <a> para que se vea así:

<a data-page="2" class="page-numbers" href="https://example.com/list/page/2/"><span class="screen-reader-text">Page </span>2</a>

¿Cuál sería la mejor manera de editar una función Core WordPress que no es conectable?

    
pregunta Swen 14.12.2016 - 15:57

1 respuesta

3

No hay filtro, pero puede establecer el argumento type en array cuando llame a paginate_links() , y luego puede ejecutar un filtro en la matriz devuelta.

Ejemplo:

$links = array_map(
    function( $link ) {
        if ( FALSE === strpos( $link, '/page/' ) )
            return str_replace( '<a ', '<a data-page="1" ', $link );

        return preg_replace(
            '~<a (.*)/page/(\d+)~',
            '<a data-page="\2" \1/page/\2',
            $link
        );
    },
    paginate_links( [ 'type' => 'array' ] )
);

print join( ' | ', $links );
    
respondido por el fuxia 14.12.2016 - 16:31

Lea otras preguntas en las etiquetas