Intereting Posts
Как получить php-файл на основе URL-адреса в WordPress Woocommerce: назначить «автора» для продукта Виджет архива WordPress вызывает ошибки Bing bot 404 Как удалить файл, включенный в родительскую тему с помощью locate_template () через дочернюю тему? Как я получаю плагин одной функции на моей теме ajax fucntion? Почему wp_options.ibd будет более 6 ГБ Почему get_posts () возвращает пустой массив, пока я пытаюсь получить сообщения из некоторых конкретных таксономий и правильно работать с другими? Лучший подход к инвентаризации WordPress Как передать переменные из одной функции в другую или объединить функции Как создать многостраничную страницу администратора и получить ее с помощью $ _GET или что-то еще? Память WordPress на 3.X Слишком много попыток входа в систему Как я могу получить всю мета-запись для конкретной должности в виде массива? Цикл WordPress не работает Изменение страницы регистрации по умолчанию?

Каков правильный способ использования функций WordPress вне файлов WordPress?

Я прочитал около 2 методов для инициализации функции WordPress вне файлов WordPress, поэтому мы можем использовать эти функции на любой странице или веб-сайте за пределами блога WordPress.

Какой из этих двух методов является правильным? Каковы варианты использования для каждого метода, если оба они верны? Каково почтение между использованием одного метода или другого?

Способ 1:

<?php define('WP_USE_THEMES', false); require('./wp-blog-header.php'); ?> 

Способ 2:

 <?php define('WP_USE_THEMES', false); require('./wp-load.php'); ?> 

Между файлами мало различий. Когда вы просматриваете страницу WordPress, первый файл называется index.php . И это, по сути, ваш «Метод 1:»

 define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require ('./wp-blog-header.php'); 

Заголовок заголовка блога (который останавливает остальную часть WordPress) напрямую загружает wp-load.php и запускает сам WordPress. Вот большая часть wp-blog-header.php :

 if ( !isset($wp_did_header) ) { $wp_did_header = true; require_once( dirname(__FILE__) . '/wp-load.php' ); wp(); require_once( ABSPATH . WPINC . '/template-loader.php' ); } 

Таким образом, разница между двумя вашими методами – это то, что загружено.

Метод 1 – это именно то, что делает WordPress для загрузки (за исключением отключения тем оформления). Поэтому, если вам нужен весь WordPress и вы хотите запустить все крючки / действия по умолчанию, перейдите по этому маршруту.

Метод 2 – это еще один шаг вниз по линии. Он загружает весь WordPress, но не вызывает wp() или вызывает загрузчик шаблонов (используемый темами). Метод 2 будет немного более легким, но должен дать вам ту же функциональность.

Способ 2 из вашего вопроса:

 <?php define( 'WP_USE_THEMES', false ); require( './wp-load.php' ); 

wp-load.php – это доступ ко всем функциям WordPress, вот и все. В первой строке WordPress загружает не файлы темы; возможно, файлы необходимы для ваших требований, а затем удалите строку.

Иногда загрузка функции. Php темы может вызвать некоторые проблемы. Это нарушало html моей другой страницы. Так вот что я сделал и решил свою проблему:

 define('STYLESHEETPATH', ''); define('TEMPLATEPATH', ''); require_once(RAIZ_WORDPRESS."/wp-load.php"); 

wp-blog-header.php привяжет статус заголовка, он вернет код состояния http из 404

wp-load.php не будет

Полезно отметить при использовании ajax, когда он проверяет код состояния http

@ ninja08

Мы можем использовать расширение xDebug php для анализа скрипта.

просто включите ;xdebug.profiler_enable = 1 в файле php.ini , удалив ; от первой строки и после этого перезапустить сервер Apache и запустить ваш сайт wordpress … теперь файл, созданный в каталоге tmp вашего сервера xampp. Откройте этот файл с помощью приложения WincachGrind .

теперь вы можете увидеть карту своего скрипта

Простой анализ WordPress WincacheGrind