Absolute Path (ABSPATH) in WordPress non funziona
Su Novembre 30, 2020 da adminAttualmente sto lavorando a una piccola attività che memorizza le informazioni di un plug-in nel database, ma ho problemi riguardo a includere il file che ha le funzioni per eseguire la query.
Ecco la riga che include il file:
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
ma ho ottenuto quanto segue quando eseguo il codice:
Avviso:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: impossibile aprire lo stream: file o directory non presenti in/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
su riga 18
Ho cercato molto ma “t trova qualcosa di utile o utile.
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 );`
Commenti
Risposta
insert.php
file che ho creato io, in realtà sono nuovo su wordpress, voglio che ci sia un errore che sto facendo? In realtà desidero memorizzare le informazioni sul modulo di un plug-in nel database.
La tua domanda è molto leggera nei dettagli ma sospetto che lerrore che stai facendo sia il caricamento un file in modo che venga caricato fuori dal contesto di WordPress o in modo tale che vengano caricate solo parti di WordPress.
La mancanza di dettagli nella tua domanda – la quasi completa mancanza di contesto per il codice – rende impossibile fornire una risposta solida, ma mi propongo di suggerire che devi eseguire il tuo codice tramite il API AJAX (anche se non strettamente AJAX). Qualcosa del genere: https://wordpress.stackexchange.com/a/108145/21376
Se desideri una risposta migliore, devi scrivere una domanda migliore. Fai clic sul pulsante “modifica” sotto la tua domanda e aggiungi più dettagli possibili, ma mantienila organizzata.
Commenti
- I ' sarei piuttosto preoccupato che una tabella di database venga creata allinterno di una chiamata AJAX fullstop
Answer
cè una bella funzione di WordPress che ti aiuta ogni volta che non vuoi “verificare la presenza di” / “mancanti sul tuo percorso.
trailingslashit
il tuo esempio dovrebbe essere scritto nel modo consigliato:
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
usando questa funzione, non hai mai devi mettere “/” davanti al tuo percorso “relativo”, poiché questa funzione fa in modo che “/” manchi nel caso in cui manchi.
questo è il motivo per cui abbiamo creato quella funzione in WordPress.
Risposta
ABSPATH
funzionerà per includere il file wp-load. include "../../../wp-load.php";
Risposta
Dovresti non serve / ma prova una barra allinizio di / wp-admin
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
Ma hai controllato se / wp-admin / admin-insert. php esiste?
LABSPATH è definito? Aggiungi quanto segue per controllare:
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
Inoltre, stai tentando di eseguirlo senza caricare WP? Inoltre, potresti provare site_url () e lavorarci sopra.
Risposta
ABSPATH dovrebbe già contenere una barra finale. È necessario includere il file di aggiornamento dal file del plug-in principale. Forse è necessario collegarsi allazione “plugins_loaded” o “init” e quindi chiamare il metodo di aggiornamento.
ABSPATH
non sembra essere definito. Dove lo stai usando?ABSPATH
e prima diwp-admin/
. Prova questo:ABSPATH . '/wp-admin/
. E considera anche questa domanda StackOverflow WP ./wp-admin/admin-insert.php
? Questo non è nel nucleo. Stai modificando il core di WordPress?