Obtener el valor del parámetro de cadena de consulta en wordpress

3 minutos de lectura

Estoy haciendo un complemento de wordpress. He usado add_query_string() dentro de los anclajes para cargar contenido según el enlace en el que ha hecho clic el usuario. Ahora necesito saber cuál es la mejor manera de obtener el valor del parámetro en el URI actual.

Probablemente sea una pregunta bastante básica y estúpida, pero soy nuevo en la programación, así que lo siento si malinterpreto algunos términos.

Este es el código:

        if ( current_user_can('manage_options') ) {
            echo (
                '<div>
                    <ul>
                        <li><a href="'.add_query_arg( 'adminoption', 1 ).'">option 1</a></li>
                        <li><a href="'.add_query_arg( 'adminoption', 2 ).'">option 2</a></li>
                    </ul>
                </div>'
            );

            // if adminoption == 1 load content A
            // if adminoption == 2 load content B

        }

avatar de usuario
reina johansson

get_query_var(‘adminoption’) solo funciona con variables estándar o registradas. Entonces, para los vars de WordPress no estándar, primero deberá registrarlo en su archivo functions.php:

function rj_add_query_vars_filter( $vars ){
    $vars[] = "adminoption";
    return $vars;
}
add_filter( 'query_vars', 'rj_add_query_vars_filter' );

get_query_var('adminoption');

Tenga en cuenta que la pregunta es antigua, pero espero que ayude a alguien.

  • ¿Qué estás agregando “grupo” a la $vars[] ¿formación? ¿No debería ser $vars[] = "adminoption";?

    – El desarrollador desconocido

    20/10/2016 a las 15:45

Creo que estás pidiendo get_query_var() función. En su caso, debe usar get_query_var(‘adminoption’). Espero eso ayude

  • gracias david Buena sugerencia, pero me devolvió el espacio en blanco. La verdad es que ni siquiera sé si debería usar add_query_arg(). Todo lo que necesito hacer es mostrar el contenido en la misma página según la cadena de consulta. Podría simplemente crear una página para cada enlace, pero esa no es una opción, ya que no estaría aprendiendo nada, y el aprendizaje es la razón principal por la que estoy jugando con la creación de un complemento.

    – rzb

    11 de julio de 2012 a las 23:25


  • ¿Cómo es tu URL después de hacer clic en un enlace? ¿Es algo como www.yoursite.com/?adminoption=1 Solo para saber si su problema comienza en add_query_arg(). De todos modos, puedes probar con el antiguo php $_GET[‘adminoption’].

    – David Carrús

    11 de julio de 2012 a las 23:56


  • Sí, la URL después de hacer clic en un enlace está bien. Y $_GET[‘adminoption’] trabajado como un encanto. ¡Gracias un montón! ¿Tengo que preocuparme por la seguridad mientras uso $_GET?

    – rzb

    12 de julio de 2012 a las 0:09

  • Supongo que solo muestra un contenido basado en el argumento y no coloca el valor dentro de una consulta de base de datos, ni lo usa directamente en la página, por lo que no debería tener ningún problema. Supongo que Wp usa una función para recuperar valores, por razones de seguridad, agregando controles y desinfectándolos, pero este no debería ser el caso. Es extraño que la función WP no funcione. ¿Obtuviste algún error? o simplemente un valor en blanco? ¿Qué tipo de página es en la que estás escribiendo el código?

    – David Carrús

    12 de julio de 2012 a las 0:29


  • Simplemente valor en blanco. ¿Podría ser el alcance desde el que lo llamo? El código está dentro de una función estática.

    – rzb

    12 de julio de 2012 a las 0:36

Levantando respuesta oculta en los comentarios de David Carrus:

De todos modos, puedes probar con el antiguo php $_GET[‘adminoption’].

avatar de usuario
Tomás Cuna

Para obtener un vars de la cadena de consulta, puede usar PHP $_GET['key'] método.

Dependiendo de lo que esté haciendo, también puede usar get_query_var('key'), esta función trabaja con parámetros aceptados por la clase WP_Query (gato, autor, etc).

Si desea utilizar variables de consulta personalizadas con esta función, debe utilizar el consulta_vars filtro para modificar la lista de variables de consulta admitidas, puede leer cómo hacerlo en la documentación vinculada anteriormente.

¿Ha sido útil esta solución?