Cómo crear una página de script PHP personalizada
Estoy tratando de ejecutar un script PHP que está ubicado en el directorio raíz de WordPress.
Por ejemplo run.php
<?php echo 'estoy ejecutándome'; ?>
Quiero ejecutar esta página en la URL mysite.com/run.php
pero muestra un error 404 no encontrado, aunque el archivo run.php
está ubicado en esa dirección.
¿Qué estoy haciendo mal?

Si quieres añadir una página personalizada en WordPress, necesitas agregar tu archivo PHP personalizado en la carpeta del tema actualmente activo ( /wp-content/themes/ ).
Supongamos que tienes un tema hijo. Coloca el archivo en la carpeta del tema hijo. Luego ve a la sección de páginas, haz clic en Añadir nueva.
En Atributos de página, elige Plantilla como tu archivo PHP.
Abre el archivo Page.php, está disponible en la carpeta del tema. Copia todo excepto el encabezado y pégalo en tu archivo PHP. Tu archivo PHP debe incluir los siguientes códigos.
<?php /* Template Name: CustomPageT1 */ ?>
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Inicia el bucle.
while ( have_posts() ) : the_post();
// Incluye la plantilla de contenido de la página.
get_template_part( 'template-parts/content', 'page' );
// Si los comentarios están abiertos o tenemos al menos un comentario, carga la plantilla de comentarios.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
// Fin del bucle.
endwhile;
?>
</main><!-- .site-main -->
<?php get_sidebar( 'content-bottom' ); ?>
</div><!-- .content-area -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Ubica el archivo en la carpeta de tu tema.
En caso de que alguien aquí desee ejecutar un script PHP accediendo a las funciones de WordPress, es necesario incluir wp-load.php
como se describe aquí.
Aquí tienes un código para comenzar:
<?php
// obtener la ruta a wp-load.php desde el script actual
$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 "hola no-registrado";
elseif (!in_array('administrator', $current_user->roles))
echo "hola usuario";
else
echo "hola administrador";
?>

Las respuestas que obtuviste están bien, pero si realmente deseas usar un archivo PHP personalizado en la raíz de la instalación de WordPress (para una página especial, API o algo más) sin usar una plantilla estándar o un archivo AJAX, entonces necesitas esto:
<?php
/*
* Este es tu archivo PHP personalizado, úsalo para lo que necesites.
*/
/* Desactivar el tema de WP para este archivo (opcional) */
define('WP_USE_THEMES', false);
/** Carga el entorno de WordPress. */
require __DIR__ . '/wp-load.php';
/* ====================================
COLOCA AQUÍ CUALQUIER CÓDIGO PHP QUE DESEES
======================================= */
Generalmente, al llamar a wp-load.php
estás cargando el núcleo completo de WordPress en ese archivo PHP. Lo único que queda es trabajar con él y listo.
