2012-05-23 3 views
1

Я довольно новичок в PHP, я работаю в WordPress, но я не думаю, что этот вопрос специфичен для WordPress. В основном, я запустил MySQL-запрос, который возвращает некоторые числа. В WordPress, вы можете воспользоваться функцией wp_list_pages(), чтобы точно сказать, какие страницы вы хотите включить в чем-то, как это:Базовый PHP: использование переменных в командах

wp_list_pages('include=161,164,167,171,172,173,174,185,188,135,141,&title_li='); 

трехзначные цифры все почтовые идентификаторы. То, что я хотел сделать, - это сгенерировать эти числа программно, а не жестко кодировать их. Поэтому я использую следующее:

$results = $wpdb->get_results("SELECT * FROM [table] WHERE [column] LIKE [string] "); 
foreach($results as $returned_id) {$pagelist.=$returned_id->post_id.",";} 

Это прекрасно работает (все в скобках заменено фактической информацией). Он просто создает список в переменной $ pagelist чисел, соответствующих моему SQL-запросу. Если бы я запускал «echo $ results», выход был бы «161,164,167 ...» и т. Д., Точный список из жестко кодированной версии.

Я хотел бы теперь заменить жёстко прописанную версию с программной версией - я думал, что это должно быть что-то вроде

wp_list_pages('include=$pagelist'); 

Но это не работает. Я хочу заменить $ pagelist в этом примере содержимым этой переменной. Как мне это сделать?

ответ

4

Вариант 1

Если вы хотите переменных для оценки необходимо использовать двойные кавычки.

wp_list_pages("include=$pagelist") 

или

wp_list_pages("include={$pagelist}") 

Вариант 2

использования конкатенации

wp_list_pages('include=' . $pagelist); 

Вариант 3

Применение sprintf

wp_list_pages(sprintf('include=%s',$pagelist)); 
+0

Удивительный! Он отлично работает! – Jake

+0

Отлично. Если этот ответ решает вашу проблему, может «принять» ответ, нажав на галочку? – xbonez

+1

Конечно! Я собирался сделать это раньше, но есть минимальное время, прежде чем вы сможете принять решение - вы ответили слишком быстро! знак равно – Jake

0

В PHP переменные ищутся только в двойных кавычках, кроме тех, на которых вы находитесь. Поэтому использовать "вместо"

wp_list_pages("include=$pagelist"); 

Другой вещью, которую вы могли бы сделать, это сцепить переменный с строкой с следующим образом:.

wp_list_pages('include='.$pagelist); 
0

ли вы попробовать:

wp_list_pages('include=' . $pagelist); 

ИЛИ

wp_list_pages("include={$pagelist}"); 
0

Чтобы ссылаться на переменные внутри строк, вы должны будете использовать двойные кавычки.

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