我需要在下面的代碼中使用一個變數,但它不起作用,我不明白為什么。
作業代碼;
$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',它也不起作用。我必須將它寫在陣列中嗎?
uj5u.com熱心網友回復:
假設$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,
) );
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/466194.html
