我正在制作页面id和类别id之间的映射,这被用于多个位置。
然而我读到from this post, 如果可以避免的话,永远不要使用全局变量。但我认为,将其作为一个全局变量是明智的,因此它不是一个应该多次执行的函数(并且每次迭代几个ID)。
但我不知道怎么做。我得到的是:
/**
* Should this be here, in order to make it global?
*/
$page_category_mapping = array();
global $page_category_mapping;
/**
* Building the mapping...
*
* Should this tage the $page_category_mapping
* as input?
*/
function build_page_category_mapping(){
// Going over all pages and maps them to a category
}
add_action( \'init\', \'build_page_category_mapping\' );
/**
* I assume this function should take the array as input, right?
*/
function a_funtion_that_uses_the_mapping( $page_category_mapping ){
echo \'<pre\';
print_r( $page_category_mapping );
echo \'</pre\';
}
add_shortcode( \'list_mapping\', \'a_funtion_that_uses_the_mapping\' );
最合适的回答,由SO网友:Zeth 整理而成
我自己想出来的。
function generate_the_excluded_array() {
global $excluded_pages;
$excluded_pages = array(\'Foo\', \'Bar\');
}
add_action( \'after_setup_theme\', \'generate_the_excluded_array\' );
然后可以使用
global
, 因此:
function example_shortcode_definition() {
global $excluded_pages;
echo $excluded[0];
}
add_shortcode( \'example_shortcode\', \'example_shortcode_definition\' );