Calea absolută (ABSPATH) în WordPress nu funcționează
On noiembrie 30, 2020 by adminÎn prezent lucrez la o sarcină mică care stochează informații despre plugin în baza de date, dar am probleme cu privire la includeți fișierul care are funcțiile pentru a rula interogarea.
Iată linia care include fișierul:
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
dar am primit următoarele când execut codul:
Atenție:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: nu s-a putut deschide fluxul: nu există un astfel de fișier sau director în/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
pe linia 18
Am căutat mult, dar nu pot găsiți ceva util sau util.
EDITĂ
Iată codul meu:
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 );`
Comentarii
Răspuns
insert.php
fișier pe care l-am făcut eu, de fapt sunt nou în wordpress, vreau să fac vreo greșeală? De fapt, vreau să stochez informații despre un formular de plugin în baza de date.
Întrebarea dvs. este foarte ușoară în detaliu, dar bănuiesc că greșeala pe care o comiteți este încărcarea un fișier astfel încât să se încarce în afara contextului WordPress sau în așa fel încât să se încarce doar părți din WordPress.
Lipsa de detalii în întrebarea dvs. – lipsa aproape completă de context pentru cod – face imposibilă furnizarea unui răspuns solid, dar mă aplec spre a sugera că trebuie să rulați codul prin intermediul API AJAX (chiar dacă nu este strict AJAX). Ceva ca asta: https://wordpress.stackexchange.com/a/108145/21376
Dacă doriți un răspuns mai bun, trebuie să scrieți o întrebare mai bună. Faceți clic pe butonul „editați” de sub întrebarea dvs. și adăugați cât mai multe detalii, dar păstrați-l organizat.
Comentarii
- I ' ar fi destul de îngrijorat că o tabelă de baze de date este creată în cadrul unui apel AJAX fullstop
Răspuns
există o funcție WordPress drăguță care vă ajută oricând nu doriți să verificați dacă lipsește „/” pe calea dvs.
trailingslashit
exemplul dvs. ar trebui să fie modul recomandat scris:
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
folosind această funcție, nu veți niciodată trebuie să puneți „/” în fața căii „relative”, deoarece această funcție asigură că „/” va fi în caz că lipsește.
Acesta este motivul pentru care am creat acea funcție în WordPress.
Răspuns
ABSPATH
va funcționa, trebuie să includeți fișierul wp-load. include "../../../wp-load.php";
Răspuns
Ar trebui nu aveți nevoie de / dar încercați o bară la începutul / wp-admin
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
Dar ați verificat dacă / wp-admin / admin-insert. fișierul php există?
Este ABSPATH definit? Adăugați următoarele pentru a verifica:
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
De asemenea, încercați să rulați acest lucru fără a încărca WP? În plus, ați putea încerca site_url () și să lucrați cu acesta.
Răspuns
ABSPATH ar trebui să conțină deja o bară finală. Trebuie să includeți fișierul de actualizare din fișierul pluginului principal. Poate că trebuie să vă conectați la acțiunea „plugins_loaded” sau „init” și apoi să apelați metoda de actualizare.
ABSPATH
nu pare să fie definit. Unde îl folosești?ABSPATH
și înainte dewp-admin/
. Încercați acest lucru:ABSPATH . '/wp-admin/
. Și luați în considerare și această întrebare StackOverflow WP ./wp-admin/admin-insert.php
? Acest lucru nu este în esență. Modificați nucleul WordPress?