在IS_PAGE(ARRAY())中使用变量

时间:2019-03-01 作者:Chris J. Zähller

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>
那怎么了?

1 个回复
最合适的回答,由SO网友:czerspalace 整理而成

在里面is_page 您正在传递一个数组,其中一个元素也是数组。既然$result已经是一个数组,您应该

if ( is_page( $result ) ){ 

相关推荐

Config.php issue in WordPress

最近在我的网站上遇到了一个问题。不知道这是什么时候发生的,怎么发生的。我在这个特定网站上的所有网页顶部都显示了以下消息。“注意:常量FS\\u CHMOD\\u DIR已在/home/mc4ebqy52sd6/public\\u html/khwajagharibnawaz中定义。组织/工作包配置。php在线101“网站名为khwajagharibnawaz。组织机构我是WordPress上的一个电枢,不过我看了一下配置。php文件和l01行只是一个文本行,说明以下内容:100*有关可用于调试的其他常数的