WordPress açık $ GLOBALS mu?

1 Cevap php

Ne yapmak istediğinizi bir Word Press tema benim PHP birini eklemektir. Sorun komut dosyasını include sonra ben, tema dosyasında, içeride işlevlere erişmek komut dosyasında bildirilen değişkenler edemezler.

Ben tema klasöründe yeni bir dosya oluşturulur ve header.php gibi aynı kod ekledi ve ben bu dosyayı açarsanız gayet güzel çalışıyor var. Yani kadarıyla söyleyebilirim gibi Word Press ile ilgili bir şey.

/other/path/wordpress/wp-content/themes/theme-name/header.php // this is broken
/other/path/wordpress/wp-content/themes/theme-name/test.php   // this works

/var/www/vhosts/domain/wordpress/ ->(symlink)-> /other/path/wordpress/
                                                /other/path/wordpress/wp-content/themes/theme-name/header.php
/var/www/vhosts/domain/include_file.php

/ Var / www / vhosts / domain / include_file.php: İçeriği

$global_var = 'global';
print_r($GLOBALS);  // if I open this file directly this prints globals WITH $global_var;
                    // if this file is included in header this prints all the WP stuff WITHOUT $global_var;

Content of: /other/path/wordpress/wp-content/themes/theme-name/header.php require '/path/to/include_file.php';

print $global_var; // this prints 'global' as expected
function test()
{
    global $global_var;
    print $global_var; // this is NULL
}
test();
print_r($GLOBALS); // this prints all the WP stuff WITHOUT $global_var in it

1 Cevap

I $GLOBALS kullanımını teşvik, ama neyse ... kullanarak değişken tanımlamak değilim:

$GLOBALS['varname'] = 'value';

Bu çalışması gerekir. Ben senin gibi düşünüyorum Eğer küresel kapsam aslında değiliz sanıyorum. Bu dosya muhtemelen fonksiyonu kapsamında konum bu durumda bir işlev tarafından bulunur ediliyor.