Come creare una pagina script PHP personalizzata
Sto cercando di eseguire uno script PHP che si trova nella directory principale di WordPress.
Ad esempio run.php
<?php echo 'i run'; ?>
Voglio eseguire questa pagina all'URL mysite.com/run.php
ma viene mostrato l'errore 404 non trovato, anche se il file run.php
si trova effettivamente in quell'indirizzo.
Cosa sto sbagliando?

Se vuoi aggiungere una pagina personalizzata in WordPress, devi aggiungere il tuo file PHP personalizzato nella cartella del tema attualmente attivo ( /wp-content/themes/ ).
Supponi di avere un child-theme. Inserisci il file nella cartella del child-theme. Quindi vai alla sezione Pagine, clicca su Aggiungi Nuova.
Negli Attributi della Pagina, scegli come Template il tuo file PHP.
Apri il file Page.php, disponibile nella cartella del tema. Copia tutto tranne l'header e incollalo nel tuo file PHP. Il tuo file PHP deve contenere i seguenti codici.
<?php /* Template Name: CustomPageT1 */ ?>
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Inizia il loop.
while ( have_posts() ) : the_post();
// Includi il template del contenuto della pagina.
get_template_part( 'template-parts/content', 'page' );
// Se i commenti sono aperti o abbiamo almeno un commento, carica il template dei commenti.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
// Fine del loop.
endwhile;
?>
</main><!-- .site-main -->
<?php get_sidebar( 'content-bottom' ); ?>
</div><!-- .content-area -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Individua il file nella cartella del tuo tema.
Nel caso qualcuno qui volesse eseguire uno script PHP che accede alle funzioni di WordPress, è necessario includere wp-load.php
come descritto qui.
Ecco del codice per iniziare:
<?php
// ottieni il percorso di wp-load.php dallo script corrente
$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 "ciao non-loggato";
elseif (!in_array('administrator', $current_user->roles))
echo "ciao utente";
else
echo "ciao admin";
?>

Le risposte che hai ricevuto vanno bene, ma se vuoi davvero utilizzare un file PHP personalizzato nella root dell'installazione di WordPress (per una pagina speciale, API o qualcos'altro) senza usare un template standard o un file AJAX, allora hai bisogno di questo:
<?php
/*
* Questo è il tuo file PHP personalizzato, usalo per ciò che desideri.
*/
/* Disabilita il tema WP per questo file (opzionale) */
define('WP_USE_THEMES', false);
/** Carica l'ambiente WordPress */
require __DIR__ . '/wp-load.php';
/* ====================================
INSERISCI QUI QUALUNQUE CODICE PHP TU VOGLIA
======================================= */
In generale, richiamando wp-load.php
stai caricando il core completo di WordPress in quel file PHP. L'unica cosa che resta da fare è gestirlo a tuo piacimento.
