Themes y Diseño

Foro WordPress » WordPress » Themes y Diseño

Permalink personalizado en plugin (32 mensajes)

Acerca de este hilo

Tags

  1. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 7 meses
    #

    Estamos mareando la perdiz, entonces, ¿Lo pusiste tú manualmente en ese .htaccess? ¿Te funcionan los permalinks del blog de esa manera? Es decir, ¿Está actuando bien ese .htaccess?

    ¿Has probado meter un .htaccess en la carpeta del blog? Este es sólo para el blog no afecta al resto.

    En fin...

    Un saludo

  2. jask

    3.0
    Antiguedad: Mar 2009
    Mensajes: 34

    offline

    Publicado hace 7 meses
    #

    A ver, no me entendés.

    Ese .htacces ya estaba. Lo puso el chico que lleva el tema de los servidor, por lo que te expliqué, por el tema de la caché y tal.
    Ese .htacces es el mismo que si pusiese uno por defecto en la carpeta raíz de Wordpress. Y NO puedo poner un .htacces en la raíz de este por dos motivos.
    1º- el .htaccess está implementado en el propio apache (archivo que te mostré) con las directrices de Wordpress.

    2º- no puedo poner un .htaccess en la raiz porque la función que haría sería la misma que el que está en apache, por lo tanto...

    La única opción que queda es configurar el .htaccess con la directiva oportuna para que funcione el plugin, no crees ?

    Saludos

  3. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 7 meses
    #

    Ok, había entendido mal...

    La verdad es que nunca había visto que se pongan las reglas de URL de un directorio en un archivo .conf aunque supongo que se puede hacer y que funcionan las URLs amigables porque todavía no me has dicho lo contrario. Esto tiene el inconveniente de que cada vez que modifiques este archivo tienes que reiniciar el servidor Apache lo cual es problemático si hay personas trabajando.

    Sin embargo, con el archivo .htaccess los cambios se actualizan sobre la marcha. .htaccess es un fichero de configuracion de Apache (no es de WordPress) que se situa en el mismo directorio en el que queremos que haga efecto, y sus directivas se extenderán a todos sus subdirectorios.

    Las directivas de .htaccess prevalecen frente a las de los ficheros de configuración principal, asimismo, las directivas de un directorio sobreescibirán las de su directorio padre.

    Además WordPress busca este archivo y trabaja de forma diferente según lo encuentre o no.

    Posibles soluciones:
    1 - Un .htaccess sólo con las otras reglas para el plugin.
    2 - Intentar con código y alguna función de WordPress diferente a la que hemos probado. Seguro que es posible, si se me ocurre algo te lo diré.

    Un saludo

  4. jask

    3.0
    Antiguedad: Mar 2009
    Mensajes: 34

    offline

    Publicado hace 7 meses
    #

    A mi también me pareció muy raro. Siempre que he trabajado con WP el propio .htaccess estaba en el raíz y sin problema, pero bueno, es lo que tiene ser dueño de los servidores, se intenta "optimizar" lo más posible :S !! Y pienso como vos, pero bueno.
    Seguiré indagando

    Un saludo !!

  5. jask

    3.0
    Antiguedad: Mar 2009
    Mensajes: 34

    offline

    Publicado hace 7 meses
    #

    De momento, para solventar el problema, estoy intentando crearlo "a pelo".

    El código que pongo es el siguiente:

    RewriteRule ^tus-stars/([0-9]+) pagename=tus-stars&ficha=$1       [L]

    Ya que $1 equivale a un número (simplemente estoy haciendo pruebas) pero al entrar a la url: http://www.web.com/tus-stars/12/ no se carga la ficha en sí, simplemente aparece la "pantalla principal" que es donde se escogen las fichas. Estoy poniendo mal el código en el archivo de configuración (veasé como .htacces) ?

    Gracias !!

  6. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 7 meses
    #

    ¿No era plugin? ¿Ahora es tus-stars?

    Bueno, yo lo haría de la siguiente manera:

    Options +FollowSymlinks
    RewriteEngine on
    Rewriterule ^tus-stars/(.*)$ index.php?pagename=tus-stars&ficha=$1 [L]

    podría representarse como
    "http://www.web.com/tus-stars/loqueseaficha"

    Un saludo

  7. jask

    3.0
    Antiguedad: Mar 2009
    Mensajes: 34

    offline

    Publicado hace 7 meses
    #

    Lo he probado anteriormente, antes de postear aquí y no funciona. Cosas raras pero bueno. Hablando con el chico que lleva los temas del servidor me comentó que la API que ofrece WP tendría que funcionar ya que trabaja con Apache y el .htacces, aunque no esté físicamente en la carpeta raiz está implementando en un archivo de configuración en /etc/sites-avalibles/nombre-web.conf

    Estoy intentando usar este código, sin éxito:

    add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' );
    add_filter( 'query_vars','my_insert_query_vars' );
    add_action( 'wp_loaded','my_flush_rules' );

    // flush_rules() if our rules are not yet included
    function my_flush_rules(){
    $rules = get_option( 'rewrite_rules' );

    if ( ! isset( $rules['(tus-stars)/(.*-.*)[/]?'] ) ) {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
    }
    }

    // Adding a new rule
    function my_insert_rewrite_rules( $rules )
    {
    $newrules = array();
    $newrules['(tus-stars)/(.*-.*)[/]?'] = 'pagename=tus-stars&ficha=$matches[1]';
    return $newrules + $rules;
    }

    // Adding the id var so that WP recognizes it
    function my_insert_query_vars( $vars )
    {
    array_push($vars, 'ficha');
    return $vars;
    }

    He colocado (.*-.*) porque la url sería: tus-stars&ficha=nombre-artista o tus-stars/?ficha=nombre-artista

    ¿Algún error que esté cometiendo?

    Gracias

  8. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 7 meses
    #

    O sea, que volvemos a los inicios...

    Eso código lo probé en su momento y no me funcionó. Lo comprobé sin el archivo .htaccess. Perdona la insistencia pero, ¿por qué no creas un archivo .htaccess aunque esté vacio a ver si funciona? Lo digo por que WordPress hace cosas diferentes según esté o no.

    Por cierto, el código de Lluna podría funcionar si colocas las reglas y palabras adecuadas.

    Saludos

  9. jask

    3.0
    Antiguedad: Mar 2009
    Mensajes: 34

    offline

    Publicado hace 7 meses
    #

    Perdonad si os mareo, me gusta tener varias opciones y no centrarme solo en una.
    Probaré con el archivo .htaccess total, de perdidos al río jajaja.

    Luego comento a ver como quedó.

    Saludos!!

  10. jask

    3.0
    Antiguedad: Mar 2009
    Mensajes: 34

    offline

    Publicado hace 7 meses
    #

    Esto lidiando ahora con el que sería el .htacces (la configuración de apache) qué para el caso.. Este es el código que tengo y no me funciona :S

    RewriteEngine On
              RewriteBase /
              RewriteRule ^index\.php$ - [L]
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteRule . /index.php [L]
              Rewriterule ^tus-stars/(.*)/?$ pagename=tus-stars&ficha=$1 [L]

    Ya no sé que probar, ¿alguna idea?

    Gracias

    PD: a ver si me aclaro porque empiezo a pensar de que es problema de programación, porque no me funciona el REWRITE y llevo 1h intentándolo :S

    Mi plugin lo que hace es coger el valor que se le pasa en ficha=, hacer una consulta en la BD y devolver el resultado como una ficha única. Por lo tanto, si en la url tus-stars/nombre-ficha se le pasa esa variable "nombre-ficha" tendría que hacer la búsqueda con esta ya que el Rewrite está configurado de esa forma (como puse anteriormente) .. verdad ??? Es que vaya caos, me está desesperando ya :S !!

    Saludos de nuevo

  11. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 7 meses
    #

    A ver, esas reglas las tienes en el archivo .conf no las dupliques pon sólo las del plugin como te dije más arriba, ya ni recuerdo de tanto código que he puesto.

    Rewriterule ^tus-stars/(.*)$ index.php?pagename=tus-stars&ficha=$1 [L]

    En vista de lo que te está costando habría que ir pensando que el problema puede estar en el plugin. En algún sitio leí que las variables no las puedes capturar con $_GET porque no funciona el permalink. Pero no te tenido oportunidad de comprobarlo.

    Un saludo

  12. jask

    3.0
    Antiguedad: Mar 2009
    Mensajes: 34

    offline

    Publicado hace 7 meses
    #

    Pues mirá, te cuento lo he probado.

    1. Editar el archivo .conf con la directriz (como si fuese un .htcacces) siguiente: Rewriterule ^tus-stars/(.*)$ index.php?pagename=tus-stars&ficha=$1 [L] - Como las fichas se pueden buscar por id o por nombre las he dejado por ID para que sea más fácil de implementar y ver si funciona pero sin éxito :S (Obviamente he reiniciado apache después de esto)
    2. He configurado el plugin para quitar los $_GET por $_REQUEST para hacer la prueba, porque en realidad son 4 variables las que usan $_GET para tomar los "datos" y sin éxito.
    3. He configurado el plugin con wp_rewrite y todas las directivas para que genere el permalink desde el propio plugin sin depender de ningún archivo externo, y nada... (También probé creando un archivo .htaccess en blanco por si era el problema ese pero nada)

    Sinceramente, ya no sé que hacer. He leído, releido, y vuelto a leer pero no entiendo porque falla. El plugin he probado de todo pero ya .. no sé, estoy un poco "jodido" en ese aspecto, más bien un bajón xD llevar un tiempo con esto y no sacarlo me crispa...

    En fin, a ver si se me ilumina la lamparita y puedo..

    Gracias !! en serio

Responder

Debes Identificarte para publicar.

Foro WordPress » WordPress » Themes y Diseño