Как правильно использовать функции вне файлов 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');
?>
Понравился вопрос? Нужен ответ? Поддержите проект
WPAsk
Ответов: 3
  1. EAMann

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

    define('WP_USE_THEMES', true);
    
    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. bueltge

    Метод 2 вашего вопроса:

    <?php 
    define( 'WP_USE_THEMES', false ); // Не загружать поддержку тем
    require( './wp-load.php' );
    

    wp-load.php — это доступ ко всем функциям WordPress, вот и все. Первая строка говорит WordPress не загружать файлы темы.

  3. RayLau135

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

    А wp-load.php нет

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

Добавить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: