Absolut Path (ABSPATH) i WordPress fungerar inte
On november 30, 2020 by adminJag arbetar för närvarande med en liten uppgift som lagrar en plugin-information i databasen, men jag har problem angående inkludera filen som har funktionerna för att köra frågan.
Här är raden som innehåller filen:
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
men jag fick följande när jag kör koden:
Varning:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: det gick inte att öppna strömmen: Ingen sådan fil eller katalog i/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
på rad 18
Jag sökte mycket men kan inte ”t hitta något användbart eller användbart.
REDIGERA
Här är min kod:
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 );`
Kommentarer
Svar
insert.php
fil som jag själv gjorde, jag är egentligen ny på WordPress, jag vill att det är något misstag jag gör? Egentligen vill jag lagra en pluginformulärinformation i databasen.
Din fråga är väldigt lätt på detaljer men jag misstänker att det misstag du gör laddar en fil på ett sådant sätt att den laddas utanför WordPress-sammanhanget, eller på ett sådant sätt att endast delar av WordPress laddas.
Bristen på detaljer i din fråga – den nästan fullständiga bristen på sammanhang för koden – gör det omöjligt att ge ett gediget svar men jag lutar mot att föreslå att du måste köra din kod via AJAX API (även om inte strikt AJAX). Något så här: https://wordpress.stackexchange.com/a/108145/21376
Om du vill ha ett bättre svar, du måste skriva en bättre fråga. Klicka på knappen ”redigera” under din fråga och lägg till så mycket information du kan, men håll den ordnad.
Kommentarer
- I ' jag skulle vara ganska orolig för att en databastabell skapas i ett AJAX-samtal fullstop
Svar
det finns en trevlig WordPress-funktion som hjälper dig när du inte vill kontrollera om det saknas ”/” på din väg.
trailingslashit
ditt exempel bör vara det rekommenderade sättet att skriva:
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
med den här funktionen, du aldrig måste lägga ”/” framför din ”relativa” sökväg, eftersom den här funktionen ser till att ”/” kommer att vara om det saknas.
det är därför vi har skapat den funktionen i WordPress.
Svar
ABSPATH
fungerar du måste inkludera wp-load-fil. include "../../../wp-load.php";
Svar
Du borde behöver inte / men prova ett snedstreck i början av / wp-admin
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
Men kontrollerade du om / wp-admin / admin-insert. php-fil finns?
Är ABSPATH definierad? Lägg till följande för att kontrollera:
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
Försöker du också köra detta utan att ladda WP? Dessutom kan du prova site_url () och arbeta med det.
Svar
ABSPATH bör redan innehålla en efterföljande snedstreck. Du måste inkludera din uppgraderingsfil från huvudpluginens fil. Kanske måste du ansluta till ”plugins_loaded” eller ”init” och sedan ringa uppgraderingsmetoden.
ABSPATH
verkar inte vara definierad. Var använder du den?ABSPATH
och förewp-admin/
. Prova detta:ABSPATH . '/wp-admin/
. Och överväga denna StackOverflow WP-fråga också./wp-admin/admin-insert.php
? Det här är inte kärnan. Ändrar du WordPress-kärnan?