Programación

Foro WordPress » WordPress » Programación

Como utilizar Permalinks y variables (5 mensajes)

Acerca de este hilo

Tags

  1. alexborras

    2.0
    Antiguedad: Abr 2010
    Mensajes: 5

    offline

    Publicado hace 2 años
    #

    Versión de WordPress: 2.7.1
    URL del blog con el problema: Resultados de Fútbol
    Nombre del Theme: Kubrick
    Plugins activos: Club
    Nivel de conocimientos sobre HTML, PHP: medio-alto

    He desarrollado un Plugin para WordPress que a partir de una serie de tablas muestra resultados de competiciones de fútbol. Empieza mostrando una lista de competiciones y a partir de ahí se va navegando por las mismas mediante hipervínculos pudiendo verse: Clasificaciones, Plantillas de Equipos, Fichas de Jugadores, Calendarios completos, etc.

    De momento para que funcione el Plugin basta con activarlo y poner en una página el tag: [competitions] y entonces al cargarse la página sustituye el Tag por la lista de competiciones que tiene cargadas y todo funciona sobre la misma página (o entrada).

    Si no tengo los permalinks activados no hay problema las URL son de este tipo: http://www.winbol.com/resultados/Index.php?p=3&competition_op=scores&competition_id=1, donde p=3 es la página base.

    La duda me surge cuando intento llevar este sistema de consultas a un WordPress con los Permalinks activados, no me aclaro como hacerlo. He estado Googleando varias horas pero no acabo de encontrar la solución. En este foro he visto una cuestión similar y se comentaba utilizar query_vars pero no he acabado de entender como.

    Quizás es que el sistema de recarga de las consultas sobre la misma página (p=3) no es el adecuado en WordPress y tengo que programar el Plugin de otra forma. Incluso se me ha ocurrido sustituir todos los hipervínculos por formularios para pasar las variables por GET dándole la apariencia de un link.

    ¿Me podrías orientar un poco? Muchas gracias por adelantado.

  2. Lluna

    Moderador
    Antiguedad: Jun 2009
    Mensajes: 859

    offline

    Publicado hace 2 años
    #

    Hola Alex, has entrado en un mundillo interesante, el de los permalinks, no es necesario que vuelvas a programar el plugin de otra forma, para poder hacer lo que necesitas solo tienes que usar el filtro query_vars y generate_rewrite_rules, te explico:

    add_filter('generate_rewrite_rules','filtro_rewrite_rules');
    add_filter('query_vars', 'filtro_query_vars');

    function filtro_rewrite_rules($wp_rewrite) {

        $competicion = array('competicion/([0-9]*)/(.*)/?$' = > 'index.php?p=3&competition_id='.$wp_rewrite- >preg_index(1).'&competition_op='.$wp_rewrite- >preg_index(2));
        $wp_rewrite- >rules = array_merge($competicion,$wp_rewrite- >rules);

    }

    function filtro_query_vars($public_query_vars) {
        if(!in_array("competition_op",$public_query_vars)) {
            $public_query_vars[] = 'competition_op';
            $public_query_vars[] = 'competition_id';
        }
        return $public_query_vars;
    }

    Con esto lo que consigues que cuando tu solicitas:

    http://www.winbol.com/resultados/competicion/1/scores/

    Realmente Wordpress interpreta

    http://www.winbol.com/resultados/Index.php?p=3&competition_op=scores&competition_id=1

    PAra que esto funcione tienes que volver a gernerar ( guardar ) los permalinks

    Saludos!

  3. alexborras

    2.0
    Antiguedad: Abr 2010
    Mensajes: 5

    offline

    Publicado hace 2 años
    #

    Muchas gracias por tu respuesta, creo que tu ejemplo me va a ayudar mucho. Estoy empezando a probarlo, de momento no me funciona pero es normal porque he de acabar de entender un poco esta filosofía de los permalinks y ademas el plugin tiene 27 archivos PHP incluyendo las clases así que he de ver donde ubico la solución.

    En unos días escribo con el resultado. Gracias de nuevo

  4. Lluna

    Moderador
    Antiguedad: Jun 2009
    Mensajes: 859

    offline

    Publicado hace 2 años
    #

    Hola alex, la depuración de los permalinks a veces es desesperante, empieza por redirecciones sencillas y si tienes dudas no dudes en preguntar

    Saludos!

  5. Lluna

    Moderador
    Antiguedad: Jun 2009
    Mensajes: 859

    offline

    Publicado hace 2 años
    #

    Que tal te fue? conseguiste lo que querías hacer?

    Saludos!

Responder

Debes Identificarte para publicar.

Foro WordPress » WordPress » Programación