Similarly to this topic 我需要从用户输入中提取一些页面ID(主题选项管理页面),将它们存储在变量中,然后使用is_page()
滤器输入由用换行符分隔的数字ID组成,尽管如果我能做到这一点,我也会进行重构以允许页面插入。
基于on the answer to the linked topic, 我有以下内容,但仍然不起作用。该变量输出一个正确的ID数组,但是is_page()
不基于数组进行筛选。
// Wordpress my_conditional_load stuff code above
function my_option_pages() {
$pages = get_option(esc_textarea(\'my_conditional_load\', \'\'));
return $pages; // reusable variable; used in form and also below
}
function my_option_result() {
$pages = my_option_pages();
$page = array_map(trim, explode(PHP_EOL, $pages)); // create array; split string at newline
$result = implode( \', \', $page ); // reassemble as comma delimited list
$result = rtrim($result); // get rid of extra whitespace
return $result; // string; resusable variable used below end elsewhere. Must be a string for other uses.
}
add_filter( \'the_content\', \'test_the_variable\' );
function test_the_variable( $content ) {
$result = my_option_result();
$result = explode(\', \', $result); // recreate the array
if ( is_page( array( $result ) ) ) {
echo \'<span class="foo hide">Array $result = \';
print_r($result);
echo \'</span>\';
}
else {
echo \'<span class="bar hide">Array $result is EMPTY! But we found this: \';
print_r($result);
echo \'</span>\';
}
return $content;
}
This page is a working example. 它是数组中的第9页ID。打开DevTools并找到字符串
bar hide
在页面源中。您可以看到阵列:
<span class="bar hide">Array $result is EMPTY! But we found this: Array
(
[0] => 9
[1] => 6604
[2] => 6509
[3] => 7323
)
</span>
那怎么了?
最合适的回答,由SO网友:czerspalace 整理而成
在里面is_page
您正在传递一个数组,其中一个元素也是数组。既然$result已经是一个数组,您应该
if ( is_page( $result ) ){