Как WordPress узнает о его функциях? - PullRequest
2 голосов
/ 03 декабря 2009

В частности, в файлах php темы, таких как, скажем, index.php. Самое первое, что есть в файле index.php большинства тем - это вызов get_header (), который наверняка не определен в index.php, так как он узнает об этой функции?

Я не очень знаком с php, но из того, что я только что прочитал, есть ключевое слово include и require, которое работает более или менее так же, как импорт в Java или * 1005. * включить в C, что я понимаю и имеет смысл. Тем не менее, единственное использование этих ключевых слов в этом конкретном файле index.php включает в себя файл, который не содержит определения get_header (), и при этом он не имеет каких-либо включений или требует своих собственных (хотя он вызывает некоторые дополнительные функции не имеет права знать о ней, так же как и индекс), так что теперь ясно, как она узнает об этой функции.

В любом случае, я просто надеялся удалить часть «магии» из WordPress для себя. Заранее спасибо!

Ответы [ 5 ]

5 голосов
/ 03 декабря 2009

index.php в каждой теме не вызывается напрямую, а включается в другие файлы в Wordpress.

get_header фактически определено в wp-includes/general-template.php.

Файлы шаблонов загружаются вызовами функций require_once в функции load_template wp-includes/theme.php

4 голосов
/ 03 декабря 2009

Файл index.php тем не является основным обрабатываемым файлом, он находится в корневом каталоге вашей установки WordPress. Он вызывает несколько файлов, устанавливающих среду, а затем загружает шаблон. Возможно, вы захотите заглянуть в каталог wp-content/plugins, возможно, начиная с файла globals.php, чтобы настроить магию.

Также каталог wp-includes содержит интересные файлы, функция get_header() определена в general-template.php в этом каталоге.

2 голосов
/ 03 декабря 2009

В частности, в php-файлах темы, например, в index.php. Самое первое, что есть в файле index.php большинства тем - это вызов get_header (), который наверняка не определен в index.php, так как он узнает об этой функции?

Файл темы index.php никогда не выполняется сам по себе. Все запросы на установку WordPress проходят через основной файл WordPress index.php.

1 голос
/ 03 декабря 2009

Скорее всего, index.php включен в другой файл, и этот файл либо определяет функцию get_header (), либо, что более вероятно, содержит еще один включенный файл php, который, в свою очередь, определяет функцию get_header ().

Вы должны понимать, что php include и требуют, чтобы функции вели себя как встроенное включение. Он просто обрабатывает включаемый файл как часть оригинального скрипта ... большой конкатенированный скрипт (не совсем как import в Java)

Вы можете начать с файла .htaccess, который сообщит вам, какой файл .php назначен для обработки запроса. Исходя из того, что вы сказали в своем вопросе, это, вероятно, не будет index.php. Когда вы найдете самый лучший php-скрипт, вы можете продолжить свой путь с помощью include s, а требует ..

0 голосов
/ 03 декабря 2009

в c и в java вы объявляете импорт файлов вверху. В php вы можете установить практически все нужные вам программы.

так что это действительно:

<?php 
// define some functions
?>
<html>
<head>
<?php
include('head.php');
?>
</head>
<body></body></html>

возможно, что эти get_header() методы объявлены где-то до включения страницы index.php.

Если вы хотите пропустить <?php get_header(); ?>, тогда проблем не будет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...