файл функций, плагин и обзор темы в Wordpress mu

У меня есть плагин, который объявляется и сцепил применяющие лучшие методы, описанные в этом связанном вопросе:

Wordpress: доступ к функции плагина от темы

Таким образом, это смотрит (платонически) как это:

if ( !class_exists( 'Foo' ) ) {
  class Foo {
    ...
    public function do_stuff() {
      // does stuff
    }
  }
}

if ( class_exists( 'Foo' ) ) {
  $MyFoo = new Foo();
}

Теперь, если я называю $MyFoo-> do_stuff () из файла темы, такой как, скажем, single.php, $MyFoo на самом деле does_stuff, и я вижу вывод на странице.

Однако, если я пишу функцию в functions.php, который хочет назвать $MyFoo-> do_stuff () и затем вызвать ту функцию от single.php, объект не найден. Таким образом,

Работы:

in themes/my_theme/single.php:
  if (isset($MyFoo))
    $MyFoo->do_stuff();

Не работает:

in themes/my_theme/functions.php:
  function do_some_foo_stuff() {
    ...
    if (isset($MyFoo)) {
       $MyFoo->do_stuff();
    } else {
       echo "no MyFoo set";
    }
    ...
  }
 themes/my_theme/single.php:
   if (isset($MyFoo))
     do_some_foo_stuff();

Выводы-> "никакой MyFoo устанавливают"

Это может быть полностью неудивительно, но это - что-то, что я должен работать, поэтому если бы кто-либо может объяснить, что продолжается, это ценилось бы. Почему функции темы не могут зарегистрировать (или другие сменные файлы в mu-плагинах в этом отношении) находят объект $MyFoo?

1
задан Community 23 May 2017 в 12:06
поделиться