Absolute Path (ABSPATH) WordPressissä ei toimi
On marraskuu 30, 2020 by adminTyöskentelen parhaillaan pienen tehtävän kanssa, joka tallentaa laajennustiedot tietokantaan, mutta minulla on ongelmia sisällytä tiedosto, jolla on toiminnot kyselyn suorittamiseksi.
Tässä on rivi, joka sisältää tiedoston:
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
mutta sain seuraavan, kun suoritin koodin:
Varoitus:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: suoratoiston avaaminen epäonnistui: Tällaista tiedostoa tai hakemistoa ei ole/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
kohdassa rivi 18
Etsin paljon, mutta en voi t löydä mitään hyödyllistä tai hyödyllistä.
MUOKKAA
Tässä on koodini:
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 );`
kommentit
Vastaa
insert.php
-tiedosto, itse asiassa olen uusi WordPressissä, haluan, onko tässä virhe? Itse haluan tallentaa laajennuslomaketiedot tietokantaan.
Kysymyksesi on erittäin kevyt yksityiskohdissa, mutta epäilen tekemäsi virheen latautuvan tiedosto siten, että se latautuu WordPress-kontekstin ulkopuolelle, tai siten, että vain osa WordPressistä ladataan.
Kysymyksesi yksityiskohtien puute – koodin kontekstin lähes täydellinen puute – tekee mahdottomaksi antaa vankan vastauksen, mutta olen taipuvainen siihen, että ehdotan, että sinun on suoritettava koodi koodin kautta AJAX-sovellusliittymä (vaikka se ei olekaan ehdottomasti AJAX). Jotain tältä: https://wordpress.stackexchange.com/a/108145/21376
Jos haluat paremman vastauksen, sinun täytyy kirjoittaa parempi kysymys. Napsauta kysymyksesi alla olevaa Muokkaa-painiketta ja lisää mahdollisimman paljon yksityiskohtia, mutta pidä se järjestyksessä.
Kommentit
- I ' d olla varsin huolestunut siitä, että tietokantataulukkoa luodaan AJAX-puhelun fullstop-sisällä
Vastaa
on mukava WordPress-toiminto, joka auttaa sinua milloin tahansa, kun et halua tarkistaa, onko polkusi puuttuva.
trailingslashit
esimerkkisi tulisi olla suositeltu tapa kirjoittaa:
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
tätä toimintoa käyttäessäsi et koskaan täytyy laittaa ”/” ”suhteellisen” polun eteen, koska tämä toiminto varmistaa, että ”/” puuttuu, jos se puuttuu.
Siksi olemme luoneet kyseisen funktion WordPressissä.
Vastaus
ABSPATH
toimii, sinun on lisättävä wp-lataustiedosto. include "../../../wp-load.php";
Vastaa
Sinun tulisi ei tarvitse / mutta yritä vinoviivaa / wp-admin alussa
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
Mutta tarkasitko / wp-admin / admin-insert. php-tiedosto on olemassa?
Onko ABSPATH määritelty? Lisää seuraava tarkistaaksesi:
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
Yritätkö myös suorittaa tämän lataamatta WP: tä? Lisäksi voit kokeilla site_url () ja työskennellä sen kanssa.
Vastaus
ABSPATH: n tulisi sisältää jo loppuviiva. Sinun on sisällytettävä päivitystiedostosi laajennuksen päätiedostosta. Ehkä sinun täytyy kytkeä ”plugins_loaded” -toiminto tai ”init” ja kutsua sitten päivitystapa.
ABSPATH
ei vaikuta olevan määritelty. Missä käytät sitä?ABSPATH
jälkeen ja ennenwp-admin/
. Kokeile tätä:ABSPATH . '/wp-admin/
. Harkitse myös tätä StackOverflow WP -kysymystä ./wp-admin/admin-insert.php
? Tämä ei ole ytimessä. Muokataanko WordPress-ydintä?