Как создать пользовательский PHP скрипт в WordPress
Я пытаюсь выполнить PHP скрипт, который находится в корневой директории WordPress.
Например run.php
<?php echo 'я запущен'; ?>
Я хочу запустить эту страницу по URL mysite.com/run.php
, но получаю ошибку 404 не найдено, даже несмотря на то, что файл run.php
находится по этому адресу.
Что я делаю не так?

Если вы хотите добавить пользовательскую страницу в WordPress, вам нужно добавить свой собственный PHP-файл в папку текущей активной темы (/wp-content/themes/).
Предположим, у вас есть дочерняя тема. Поместите файл в папку дочерней темы. Затем перейдите в раздел страниц, нажмите Добавить новую.
В атрибутах страницы выберите шаблон как ваш PHP-файл.
Откройте файл Page.php, он доступен в папке темы. Скопируйте всё, кроме шапки, и вставьте в свой PHP-файл. Ваш PHP-файл должен содержать следующий код:
<?php /* Template Name: CustomPageT1 */ ?>
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Начало цикла.
while ( have_posts() ) : the_post();
// Подключение шаблона содержимого страницы.
get_template_part( 'template-parts/content', 'page' );
// Если комментарии открыты или есть хотя бы один комментарий, подгружаем шаблон комментариев.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
// Конец цикла.
endwhile;
?>
</main><!-- .site-main -->
<?php get_sidebar( 'content-bottom' ); ?>
</div><!-- .content-area -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Найдите файл в папке вашей темы.
Если кто-то захочет запустить php-скрипт с доступом к функциям WordPress, необходимо подключить wp-load.php
, как описано здесь.
Вот пример кода для начала:
<?php
// получаем путь к wp-load.php из текущего скрипта
$parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] );
require_once( $parse_uri[0] . 'wp-load.php' );
$current_user = wp_get_current_user();
if ( 0 == $current_user->ID )
echo "Привет, неавторизованный пользователь";
elseif (!in_array('administrator', $current_user->roles))
echo "Привет, пользователь";
else
echo "Привет, администратор";
?>

Полученные вами ответы верны, но если вам действительно нужно использовать пользовательский PHP-файл в корне установки WordPress (для специальной страницы, API или чего-то еще) без использования стандартного шаблона или AJAX-файла, тогда вам понадобится это:
<?php
/*
* Это ваш пользовательский PHP-файл, используйте его для любых целей.
*/
/* Отключить тему WordPress для этого файла (опционально) */
define('WP_USE_THEMES', false);
/** Загружает среду WordPress. */
require __DIR__ . '/wp-load.php';
/* ====================================
РАЗМЕСТИТЕ ЛЮБОЙ PHP-КОД, КОТОРЫЙ ВАМ НУЖЕН
======================================= */
По сути, вызывая wp-load.php
, вы загружаете полное ядро WordPress в этот PHP-файл. Остается только управлять им — и всё готово.
