Az abszolút elérési út (ABSPATH) a WordPress-ben nem működik
On november 30, 2020 by adminJelenleg egy olyan kis feladaton dolgozom, amely plugin információkat tárol az adatbázisban, de problémám van tartalmazza azt a fájlt, amely rendelkezik a lekérdezés futtatásához szükséges funkciókkal.
Itt található az a sor, amely a fájlt tartalmazza:
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
de a következőt kaptam a kód futtatásakor:
Figyelem:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: nem sikerült megnyitni az adatfolyamot: Nincs ilyen fájl vagy könyvtár a/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
helyen a 18. sor
Sokat kerestem, de nem tudom talál valami hasznosat vagy hasznosat.
SZERKESZTÉS
Itt van a kódom:
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 );`
megjegyzések
Válasz
insert.php
fájl, amelyet magam készítettem, valójában új vagyok a wordpress alkalmazásban, szeretném, hogy van-e valami hiba, amit elkövetek? Valójában egy plugin űrlap információkat szeretnék tárolni az adatbázisban.
Kérdése nagyon részletgazdag, de gyanítom, hogy az elkövetett hiba betöltődik egy fájlt úgy, hogy a WordPress kontextusán kívül töltse be, vagy oly módon, hogy a WordPress csak egyes részei tölthetők be.
A kérdésed részletességének hiánya – a kód kontextusának majdnem teljes hiánya – lehetetlenné teszi a szilárd válasz megadását, de arra hajlamos vagyok, hogy azt javaslom, hogy a kódot a AJAX API (akkor is, ha nem szigorúan AJAX). Valami ilyesmi: https://wordpress.stackexchange.com/a/108145/21376
Ha jobb választ szeretne, egy jobb kérdést kell írnia . Kérjük, kattintson a “szerkesztés” gombra a kérdése alatt, és adjon meg minél több részletet, de tartsa rendszerezetten.
Megjegyzések
- I ' nagyon kell aggódnia, hogy az AJAX fullstop hívás belsejében adatbázis-tábla készül
Válasz
van egy szép WordPress funkció, amely bármikor segít, ha nem akarja ellenőrizni, hogy hiányzik-e az útvonaláról.
trailingslashit
a példád legyen a javasolt írásmód:
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
ezt a funkciót használva soha a “/” jelet a “relatív” útvonal elé kell tenni, mivel ez a függvény biztosítja, hogy a “/” hiányzik.
ezért hoztuk létre ezt a függvényt a WordPress-ben.
Válasz
ABSPATH
működni fog, be kell illesztenie a wp-load fájlt. include "../../../wp-load.php";
Válasz
Meg kell nem kell a /, de próbáljon egy perjelet a / wp-admin elején
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
De ellenőrizte, hogy a / wp-admin / admin-insert be van-e állítva. létezik php fájl?
Meghatározták az ABSPATH-t? Adja hozzá a következőket az ellenőrzéshez:
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
Ezenkívül megpróbálja ezt futtatni a WP betöltése nélkül? Ezenkívül kipróbálhatja a site_url () alkalmazást, és dolgozhat vele.
Válasz
Az ABSPATH-nak már tartalmaznia kell egy perjelet. Be kell illesztenie a frissítési fájlt a fő plugin fájljából. Lehet, hogy be kell kapcsolódnia a „plugins_loaded” műveletbe vagy az „init” -be, majd meg kell hívnia a frissítési módszert.
ABSPATH
úgy tűnik, hogy nincs meghatározva. Hol használod?ABSPATH
után és awp-admin/
előtt. Próbálja ki:ABSPATH . '/wp-admin/
. És fontolja meg ezt a StackOverflow WP kérdést is./wp-admin/admin-insert.php
? Ez nem a lényeg. Módosítja a WordPress magját?