为什么当我在数组中分配它时变量不起作用?
Why Doesn't Variable Work When I Assign It In Array?
我需要在下面的代码中使用一个变量,但它不起作用,我不明白为什么。
工作代码;
$the_query = new WP_Query( array(
'post__in' => array(
16405,16362,16290,16434,16661
),
) );
无效的代码;
$featured_content_id = get_theme_mod( 'laura_featured_content_id' );
$the_query = new WP_Query( array(
'post__in' => array(
$featured_content_id
),
) );
当我使用 echo 和 var_dump() 查看 $featured_content_id 变量时,它似乎是正确的。这意味着结果是 16405、16362、16290、16434、16661,但它在数组中不起作用。如果我直接使用 $featured_content_id = '16405, 16362, 16290, 16434, 16661' 也不起作用。一定要写在数组里面吗?
假设$featured_content_id
是一个字符串:
您可能想要 explode(',', $featured_content_id)
而不是 array($featured_content_id)
。如果它必须是数字而不是字符串,您还需要 array_map('intval', ...)
围绕它。
这是因为您当前所做的将给您一个类似于 array('16405,16362,16290,16434,16661')
的数组,它是一个包含 一个 元素的数组,该元素是一个字符串。您真正想要的是将字符串(使用 ,
作为分隔符)拆分为一个数组,每个部分有一个元素。
$the_query = new WP_Query( array(
'post__in' => array_map('intval', explode(',', $featured_content_id)),
) );
假设$featured_content_id
是一个数组:
如果它已经是一个数组,你只需要直接传递变量,而不用在array( )
.
中包装它
$the_query = new WP_Query( array(
'post__in' => $featured_content_id,
) );
我需要在下面的代码中使用一个变量,但它不起作用,我不明白为什么。
工作代码;
$the_query = new WP_Query( array(
'post__in' => array(
16405,16362,16290,16434,16661
),
) );
无效的代码;
$featured_content_id = get_theme_mod( 'laura_featured_content_id' );
$the_query = new WP_Query( array(
'post__in' => array(
$featured_content_id
),
) );
当我使用 echo 和 var_dump() 查看 $featured_content_id 变量时,它似乎是正确的。这意味着结果是 16405、16362、16290、16434、16661,但它在数组中不起作用。如果我直接使用 $featured_content_id = '16405, 16362, 16290, 16434, 16661' 也不起作用。一定要写在数组里面吗?
假设$featured_content_id
是一个字符串:
您可能想要 explode(',', $featured_content_id)
而不是 array($featured_content_id)
。如果它必须是数字而不是字符串,您还需要 array_map('intval', ...)
围绕它。
这是因为您当前所做的将给您一个类似于 array('16405,16362,16290,16434,16661')
的数组,它是一个包含 一个 元素的数组,该元素是一个字符串。您真正想要的是将字符串(使用 ,
作为分隔符)拆分为一个数组,每个部分有一个元素。
$the_query = new WP_Query( array(
'post__in' => array_map('intval', explode(',', $featured_content_id)),
) );
假设$featured_content_id
是一个数组:
如果它已经是一个数组,你只需要直接传递变量,而不用在array( )
.
$the_query = new WP_Query( array(
'post__in' => $featured_content_id,
) );