Pregunta sobre Developing with WordPress de Wordpress:

parámetro de la URL al contenido

Un usuario preguntó 👇

En wordpress podemos encontrar la forma de parámetro de URL al contenido. es decir www.domainname.com/?ppc=any%20phrase
a <h1> Una oración </h1>


$variable = $_GET['param_name'];

//Or as you have it
$ppc = $_GET['ppc'];

¿Puede esto hacer una lista de frases permitidas, siguiendo los parámetros?

es decir


ppc=super%20hero 
ppc=easy%20way%20home

por razones seguras, es decir, usar htaccess o cualquier otro método?

Este tema fue modificado hace 1 año, 9 meses por.

(@vrandom)

Hace 1 año, 9 meses

Posible solución usando opciones de código WP.

Agregue a su archivo de plantilla functions.php.


add_action('parse_query', 'check_querystring_ppc_value_is_valid');
function check_querystring_ppc_value_is_valid( $wp_query ) {
        // check if we have the ppc query string var
        if (($ppcValue = get_query_var('ppc', 'nope')) != 'nope') {

                // setup the valid choices
                $validPPCChoices = [
                        'super hero', 'easy way home'
                ];

                if (in_array(strtolower($ppcValue), $validPPCChoices)) {

                        // the ppc value is valid

                        // DO SOMETHING

                } else {

                        // the ppc value is NOT valid

                        // DO SOMETHING

                }
        }
}

function add_custom_query_vars_filter($vars) {
  $vars[] .= 'ppc';
  return $vars;
}
add_filter( 'query_vars', 'add_custom_query_vars_filter' );

(@ ladnie77)

Hace 1 año, 9 meses

gracias, funciona casi 🙂 pero tengo cada oración cuatro veces por página, dos veces en el encabezado dos veces en el contenido Solo necesito una (en el script) / el valor de ppc es válido

macalla get_query_var (‘ppc’);

y (en el tema)

Esta respuesta fue modificada hace 1 año, 9 meses por.

(@bcworkz)

Hace 1 año, 9 meses

La acción ‘parse_query’ activa todas las preguntas de la página, incluso la de los elementos del menú. La consulta var ppc pasada como parámetro de URL también está disponible para todas las consultas en la página, por lo que su presencia por sí sola no es criterio suficiente para aplicarla cuando sea necesario y no para aplicarla cuando no es necesario.

Necesita más condiciones en su código / vrandom para asegurarse de que solo se aplique cuando sea necesario. Otra posibilidad sería llamar a add_action () “parse_query” justo antes de que sea necesario, quizás llamándolo en la página de la plantilla. Luego solicite a su llamada que se elimine de la pila de acciones «parse_query» para que ya no se ejecute después de un uso.

(@vrandom)

Hace 1 año, 9 meses

Humm, está bien, estaba pensando que estabas intentando redirigir la página o algo basado en el valor de ppc para que sea válido.

No estoy seguro de lo que está tratando de lograr. Lo que dijo @bcworkz podría funcionar, pero podría ser demasiado para matar por lo que quieres.

Puede hacer esto si solo desea hacer eco del ppc.


(in content) <h1><?php echo get_query_var(‘ppc’).“!”; ?></h1>

Pero eso no comprueba si es válido.

¿Puede explicar el proceso que debe realizar?

(@ ladnie77)

Hace 1 año, 9 meses

El parámetro IDEA DYNAMICALLY FROM url IN h1 en el contenido, es decir. domainname.com?ppc=superhero

yo

superhéroe

PERO solo frases limitadas (predefinidas), es decir, si escribo domainname.com?ppc=superhero2 NO PUEDO

si uso

, h1 contiene todo lo que escribo en la URL, es decir, superhero2

(@vrandom)

Hace 1 año, 9 meses

Bien, aquí lo entiendo.

Desea mostrar el valor ppc en su página en h1, pero si ese valor no está en la lista de opciones válidas, entonces si el valor ppc no es una etiqueta h1 vacía, lo estaría.

Si es importante, mostrar el valor de ppc depende de lo que haya en la URL. Entonces, si llamo domainname.com?ppc=super hero, el valor de visualización de ppc es «superhéroe», pero si domainname.com?ppc=Super Hero, entonces el valor de visualización de ppc es «Super Hero». Si desea el valor de visualización de “Superhéroe” para “superhéroe”, puede cambiar la función para establecer un valor de visualización predeterminado para las opciones válidas.

Si esto es lo que desea, creo que se puede hacer sin usar add_action (‘parse_query’ … y donde desea mostrar el valor.

Elimine la función original y las líneas add_action, pero conserve add_custom_query_vars_filter y su línea de filtro.

agregue esta función en su archivo functions.php


function get_ppc_value_if_valid( $default = '',  $beforeText = '', $afterText = '' ) {
	// check if we have the ppc query string var
	if (($ppcValue = get_query_var('ppc', 'nope')) != 'nope') {

		// setup the valid choices with the display values
		$validPPCChoices = [
			'super hero' => 'Super Hero',
			'easy way home' => "Easy Way Home"
        ];

		if (in_array(strtolower($ppcValue), $validPPCChoices)) {
			// the ppc value is valid
            return $beforeText. $validPPCChoices[strtolower($ppcValue)].$afterText;
		} else {
			// the ppc value is NOT valid
		}
	}

	return $default;
}

Luego, en su plantilla, esto se usa cuando desea mostrar el valor de ppc,


echo get_ppc_value_if_valid('', '<h1>', '!</h1>');

Entonces, con el código modificado, para el héroe de la URL, domainname.com?ppc=super, devolvería

Superhéroe

, y para domainname.com?ppc=super hero2, no haría eco en absoluto. No crearía una etiqueta vacía

.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *