Come accedere direttamente a un file PHP situato nella cartella dei temi?
Ho un file nella cartella del mio tema chiamato "test.php".
Se vado su www.mysite.com/wp-content/themes/my-theme/folder/test.php il tema si carica, cosa che presumo sia un errore 404 gestito da WP. Se cambio il nome del file in test.html posso accedervi senza problemi.
Ho provato ad aggiungere il seguente codice al mio file functions.php (per aggiungere una regola di riscrittura):
add_rewrite_rule( 'test.php$', $relative_directory . '/folder/test.php [L]', 'top' );
ma anche avendo la regola htaccess non sembrava fare nulla.
Qualcuno ha idea di cosa potrebbe causare questo?

Supponendo che tu utilizzi l'URL corretto per accedere al file, tutto viene gestito a livello del tuo server web e WP non viene eseguito affatto, quindi soluzioni basate su WP come la modifica delle regole di riscrittura non ti saranno d'aiuto.
È molto probabile che ci sia qualche configurazione del server web che invia il 404 per qualsiasi accesso a un file php in quella cartella (immagino che dovresti provare se anche altri file php lì restituiscono 404). Potresti essere in grado di modificare la configurazione del server web per soddisfare le tue esigenze, ma come ha commentato @EAMann, non è il modo giusto per scrivere ajax per WP.

Stai usando le regole RewriteRule
nel tuo file .htaccess? Dovresti essere in grado di accedere direttamente ai file PHP allora. Le prime due righe con un RewriteCond
assicurano che la riscrittura verso l'index.php
di WordPress non avvenga se il file o la directory esiste.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /tuo-sito-wp/index.php [L]

Devi creare un template personalizzato per WP per quel file in modo che possa essere visualizzato correttamente. Altrimenti è un file autonomo che cerca di essere eseguito senza autorizzazione o hook. In questo caso, dovresti aggiungere direttamente il codice PHP del file tramite WP e creare una Pagina.
Puoi anche aprire il file "page.php" nella directory del tuo tema selezionato, salvarlo come "test.php" nella stessa directory e incollare l'intero contenuto del tuo codice PHP "test.php" all'interno della divisione del nuovo file "test.php".
Qualcosa del genere:
<main id="main" class="site-main" role="main">
<?php
// Il tuo codice PHP qui!
?>
</main>
Questo mostra solo la divisione di base di cui avrai bisogno. Se desideri che venga visualizzato anche il resto del contenuto del sito insieme a test.php, dovrai creare un file content-test.php nella directory "template-parts" del tuo tema.
Stessa cosa, ma questa volta aprirai "content-page.php" e lo salverai come "content-test.php" nella directory "template-parts", incollando il codice di test.php all'interno del punto in cui vuoi che appaia.
Torna al nuovo file "test.php" e sostituisci la seguente riga:
get_template_part( 'template-parts/content', 'page' );
con:
get_template_part( 'template-parts/content', 'test' );
Lo svantaggio di questo metodo è che, quando WP si aggiorna, potrebbe o meno lasciare intatto quel file rispetto alla prima opzione che chiama il file PHP come post o pagina.
Spero che questo ti sia utile!
