Un utilisateur a demandé 👇

Dans wordpress, nous pouvons trouver la forme de paramètre d’URL au contenu. c’est-à-dire www.domainname.com/?ppc=any%20phrase
pour <h1> Une prière </h1>


$variable = $_GET['param_name'];

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

Cela peut-il faire une liste des phrases autorisées, en suivant les paramètres ?

c’est-à-dire


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

pour des raisons de sécurité, c’est-à-dire en utilisant htaccess ou toute autre méthode ?

Ce sujet a été modifié il y a 1 an et 9 mois par.


(@vrandom)

il y a 1 an, 9 mois

Solution possible en utilisant les options de code WP.

Ajoutez à votre fichier de modèle 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)

il y a 1 an, 9 mois

merci, ça marche presque 🙂 ​​mais j’ai chaque phrase quatre fois par page, deux fois dans l’en-tête deux fois dans le contenu j’en ai besoin d’une seule (dans le script) / la valeur ppc est valide

balisage get_query_var(‘ppc’);

et (dans le sujet)

Cette réponse a été modifiée il y a 1 an et 9 mois par.


(@bcworkz)

il y a 1 an, 9 mois

L’action ‘parse_query’ déclenche toutes les requêtes sur la page, y compris les requêtes pour les éléments de menu. La requête var ppc passée en paramètre d’URL est également disponible pour toutes les requêtes de la page, sa seule présence n’est donc pas un critère suffisant pour l’appliquer en cas de besoin et ne pas l’appliquer en cas de besoin.

Vous avez besoin de plus de conditions dans votre code/vrandom pour vous assurer qu’il n’est appliqué qu’en cas de besoin. Une autre possibilité serait d’appeler add_action() “parse_query” juste avant qu’il ne soit nécessaire, peut-être en l’appelant sur la page du modèle. Demandez ensuite à votre appel d’être supprimé de la pile d’actions “parse_query” afin qu’il ne s’exécute plus après une seule utilisation.


(@vrandom)

il y a 1 an, 9 mois

Hmm, ok, je pensais que vous essayiez de rediriger la page ou quelque chose basé sur la valeur ppc pour être valide.

Je ne suis pas sûr de ce que vous essayez d’atteindre. Ce que @bcworkz a dit pourrait fonctionner, mais pourrait être trop difficile à tuer pour ce que vous voulez.

Vous pouvez le faire si vous voulez simplement faire écho au ppc.


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

Mais cela ne vérifie pas si c’est valide.

Pouvez-vous expliquer le processus que vous devez suivre?


(@ ladnie77)

il y a 1 an, 9 mois

Le paramètre IDEA DYNAMICALLY FROM url IN h1 dans le contenu, c’est-à-dire. nomdedomaine.com?ppc=superhero

je

MAIS seulement des phrases limitées (prédéfinies), c’est-à-dire que si je tape domainname.com?ppc=superhero2 JE NE PEUX PAS

Oui je l’utilise

h1 contient tout ce que je tape dans l’URL, c’est-à-dire superhero2


(@vrandom)

il y a 1 an, 9 mois

Ok, je comprends ici.

Vous souhaitez afficher la valeur ppc sur votre page en h1, mais si cette valeur ne figure pas dans la liste des options valides, alors si la valeur ppc n’est pas une balise h1 vide, elle le sera.

Si c’est important, l’affichage de la valeur ppc dépend du contenu de l’URL. Donc, si j’appelle domainname.com?ppc=super hero, la valeur d’affichage ppc est “superhero”, mais si domainname.com?ppc=Super Hero, alors la valeur d’affichage ppc est “Super Hero”. Si vous voulez la valeur d’affichage de « Super-héros » pour « super-héros », vous pouvez modifier la fonction pour définir une valeur d’affichage par défaut pour les options valides.

Si c’est ce que vous voulez, je pense que cela peut être fait sans utiliser add_action(‘parse_query’… et où vous voulez afficher la valeur.

Supprimez la fonction d’origine et les lignes add_action, mais conservez add_custom_query_vars_filter et sa ligne de filtre.

ajoutez cette fonction dans votre fichier 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;
}

Ensuite, dans votre modèle, cela est utilisé lorsque vous souhaitez afficher la valeur ppc,


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

Ainsi, avec le code modifié, pour le héros de l’URL, domainname.com?ppc=super, il renverrait

, et pour domainname.com?ppc=super hero2, cela ne résonnerait pas du tout. Je ne créerais pas de balise vide

Was this helpful?

0 / 0

Leave a Reply 0

Your email address will not be published. Required fields are marked *