2016-03-30 2 views
1

Я хочу добавить некоторые дополнительные функции в файл темы WordPress (PHP).Как изменить контент на основе строки запроса?

Я использую идентификатор ref и добавляю его к URL-адресу (в виде строки запроса). Я хочу, чтобы HTML изменялся в зависимости от строки. Основное описание:

if 
/?ref=email1 
echo 'This HTML' 

or if 
/?ref=email2 
echo 'This other HTML' 

or if neither 
echo 'Default HTML' 

Код я придумал до сих пор находится ниже (но не работает):

switch($_GET){ 
    case !empty($_GET['email1']): 
     HTML here 
    break; 

    case !empty($_GET['email2']): 
     This other HTML 
    break; 

    default: 
     Default HTML 
    break; 
} 

Как я могу исправить мой код?

ответ

0

Вы делаете это неправильно. $_GET - array. Вы не можете реализовать swicth таким образом. Может быть, это было бы как -

switch($_GET['ref']){ 
    case 'email1': 
     HTML here 
    break; 

    case 'email2': 
     This other HTML 
    break; 

    default: 
     Default HTML 
    break; 

} 

Вы можете попробовать этот трюк -

$contents = array(
    'email1' => 'HTML here', 
    'email2' => 'This other HTML' 
); 

if(!empty($contents[$_GET['ref']])) { 
    echo $contents[$_GET['ref']]; 
} else { 
    Default HTML 
} 
0

Вы получаете содержимое email1 и email2, параметры, которые не существуют в $_GET. Вместо этого вам нужно использовать ref.

switch($_GET['ref']){ 
    case "email1": 
    echo "HTML here"; 
    break; 
    case "email2": 
    echo "Other HTML here"; 
    break; 
    default: 
    echo "Default HTML here"; 
    break; 
} 
+0

Спасибо за это spudmonkee! Этот helpef меня решает проблему :) Единственное, что мне нужно было сделать, это удалить: после случая, и он отлично сработал. switch ($ _ GET ['ref']) { case "email1": echo "HTML здесь «; break; кейс «email2»: echo «Другой HTML здесь»; break; default: echo "HTML по умолчанию здесь"; break; } –

+0

@RM Woops, не видел этого, рад, что он работает! – spudmonkee

Смежные вопросы