Calea Absolută (ABSPATH) în WordPress nu funcționează
În prezent lucrez la o sarcină mică care stochează informațiile unui plugin în baza de date, dar am o problemă legată de includerea fișierului care conține funcțiile pentru execuția query-urilor.
Iată linia care include fișierul:
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dar primesc următoarea eroare când rulez codul:
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
Am căutat mult dar nu am găsit nimic util sau de ajutor.
EDITARE
Iată codul meu:
global $wpdb;
// Numele tabelului cu prefixul WordPress
$table_name = $wpdb->prefix . 'table_form';
// Crearea structurii tabelului
$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 );`
Fișierul
insert.php
pe care l-am creat eu, de fapt sunt nou în WordPress, vreau să știu dacă fac vreo greșeală? De fapt, vreau să stochez informațiile dintr-un formular de plugin în baza de date.
Întrebarea ta este foarte generală, dar bănuiesc că greșeala pe care o faci este încărcarea unui fișier într-un mod care îl încarcă în afara contextului WordPress sau într-un mod în care doar părți din WordPress sunt încărcate.
Lipsa detaliilor în întrebarea ta – aproape complet lipsa de context pentru cod – face imposibil să ofer un răspuns solid, dar tind să sugerez că trebuie să rulezi codul prin API-ul AJAX (chiar dacă nu strict AJAX). Ceva de genul: https://wordpress.stackexchange.com/a/108145/21376
Dacă vrei un răspuns mai bun, trebuie neapărat să scrii o întrebare mai detaliată. Te rog apasă butonul "editare" sub întrebarea ta și adaugă câte detalii poți, dar păstrează-le organizate.

există o funcție utilă în WordPress care te ajută ori de câte ori nu vrei să verifici dacă lipsește "/" din calea ta.
trailingslashit
exemplul tău ar trebui să fie scris în modul recomandat:
require_once( trailingslashit( ABSPATH ) . 'wp-admin/includes/upgrade.php' );
folosind această funcție, nu trebuie să pui "/" în fața căii "relative", deoarece această funcție se asigură că "/" va fi adăugat în cazul în care lipsește.
acesta este motivul pentru care am creat această funcție în WordPress.

Nu ar trebui să ai nevoie de /, dar încearcă să adaugi o bară oblică la începutul căii /wp-admin
require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
Dar ai verificat dacă fișierul /wp-admin/admin-insert.php există?
Este ABSPATH definit? Adaugă următoarele pentru a verifica:
// Este ABSPATH definit?
if ( !defined('ABSPATH') )
die('-1');
De asemenea, încerci să rulezi acest cod fără să încarci WordPress? În plus, ai putea încerca să folosești site_url() și să lucrezi cu aceasta.

ABSPATH ar trebui să conțină deja o bară oblică la final. Trebuie să incluzi fișierul tău de actualizare din fișierul principal al plugin-ului. Poate că trebuie să te conectezi la acțiunea 'plugins_loaded' sau 'init' și apoi să apelezi metoda de actualizare.
