Запуск только ядра WordPress (минимальная загрузка)

Если от движка нужно только обращение к базе и несколько системных хуков, то перед загрузкой wp-load.php нужно определить константу SHORTINIT со значением true

Пример запуска в консоли, когда не определена $_SERVER[‘DOCUMENT_ROOT‘]:

<?php
$_SERVER['DOCUMENT_ROOT'] = __DIR__ . '/../../../..';

define('SHORTINIT', true);


require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';

global $wpdb;

$get_posts = $wpdb->get_results("SELECT `post_title` FROM `" . $wpdb->posts . "` WHERE post_type = 'post'");

if ($get_posts)
{
	foreach ($get_posts as $post){
		echo $post->post_title . "\n";
	}
}

 

Что работает при SHORTINIT

apply_filters() и do_action() только из /wp-includes/default-filters.php

Скрипты которые подключаются по умолчанию:

  • /wp-includes/load.php
  • /wp-includes/default-constants.php
  • /wp-includes/compat.php
  • /wp-includes/functions.php
  • /wp-includes/class-wp.php
  • /wp-includes/class-wp-error.php
  • /wp-includes/plugin.php
  • /wp-includes/pomo/translations.php
  • /wp-includes/pomo/entry.php
  • /wp-includes/pomo/mo.php
  • /wp-includes/pomo/streams.php
  • /wp-includes/default-filters.php