Il Percorso Assoluto (ABSPATH) in WordPress non funziona
Sto attualmente lavorando su un'attività che memorizza le informazioni di un plugin nel database, ma ho problemi nell'includere il file che contiene le funzioni per eseguire la query.
Ecco la riga che include il file:
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
ma quando eseguo il codice ottengo il seguente errore:
Warning:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: failed to open stream: No such file or directory in/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
on line 18
Ho cercato molto ma non sono riuscito a trovare nulla di utile o di aiuto.
MODIFICA
Ecco il mio codice:
global $wpdb;
$table_name = $wpdb->prefix . 'table_form';
$sql = "CREATE TABLE $table_name (
id int(11) NOT NULL AUTO_INCREMENT,
rows int(11) DEFAULT NULL,
cols int(11) DEFAULT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta( $sql );`
Il file
insert.php
che ho creato personalmente, in realtà sono nuovo a WordPress, vorrei sapere se sto facendo qualche errore? In pratica voglio memorizzare le informazioni di un modulo di un plugin nel database.
La tua domanda è molto vaga nei dettagli ma sospetto che l'errore che stai commettendo sia quello di caricare un file in modo che venga caricato al di fuori del contesto di WordPress, o in modo tale che solo alcune parti di WordPress vengano caricate.
La mancanza di dettagli nella tua domanda - la quasi totale assenza di contesto per il codice - rende impossibile fornire una risposta precisa, ma sono propenso a suggerire che hai bisogno di eseguire il tuo codice tramite l'API AJAX (anche se non strettamente AJAX). Qualcosa come questo: https://wordpress.stackexchange.com/a/108145/21376
Se vuoi una risposta migliore, devi scrivere una domanda migliore. Per favore clicca il pulsante "modifica" sotto la tua domanda e aggiungi tutti i dettagli che puoi, ma mantienili organizzati.

esiste una comoda funzione di WordPress che ti aiuta ogni volta che non vuoi controllare la presenza del "/" nel tuo percorso.
trailingslashit
il tuo esempio dovrebbe essere scritto nel modo consigliato:
require_once( trailingslashit( ABSPATH ) . 'wp-admin/includes/upgrade.php' );
utilizzando questa funzione, non dovrai mai inserire "/" all'inizio del tuo percorso "relativo", poiché questa funzione si assicura che "/" sia presente nel caso mancasse.
questo è il motivo per cui abbiamo creato questa funzione in WordPress.

Non dovresti aver bisogno della / ma prova a mettere uno slash all'inizio di /wp-admin
require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
Ma hai verificato se il file /wp-admin/admin-insert.php esiste?
ABSPATH è definito? Aggiungi il seguente codice per verificare:
// ABSPATH è definito?
if ( !defined('ABSPATH') )
die('-1');
Inoltre, stai cercando di eseguire questo codice senza caricare WordPress? Potresti anche provare con site_url() e lavorare con quello.
