Absolut sti (ABSPATH) i WordPress fungerer ikke
On november 30, 2020 by adminJeg arbejder i øjeblikket på en lille opgave, der gemmer en plugin-information i databasen, men jeg har problemer med at inkluderer den fil, der har funktionerne til at køre forespørgslen.
Her er linjen, der inkluderer filen:
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
men jeg fik følgende, når jeg kørte koden:
Advarsel:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: kunne ikke åbne stream: Ingen sådan fil eller katalog i/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
på linje 18
Jeg søgte meget, men kan ikke t find noget nyttigt eller nyttigt.
REDIGER
Her er min kode:
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 jeg lavede selv, faktisk er jeg ny i wordpress, jeg vil gerne, er der nogen fejl, jeg laver? Faktisk vil jeg gemme en pluginformularinformation i databasen.
Dit spørgsmål er meget let på detaljer, men jeg formoder, at den fejl, du laver, er at indlæse en fil på en sådan måde, at den indlæses uden for WordPress-sammenhængen, eller på en sådan måde, at kun dele af WordPress indlæses.
Manglen på detaljer i dit spørgsmål – den næsten komplette mangel på kontekst for koden – gør det umuligt at give et solidt svar, men jeg læner mig mod at foreslå, at du skal køre din kode via AJAX API (selvom det ikke er strengt AJAX). Noget som dette: https://wordpress.stackexchange.com/a/108145/21376
Hvis du vil have et bedre svar, du skal skrive et bedre spørgsmål. Klik på knappen “rediger” under dit spørgsmål, og tilføj så mange detaljer som muligt, men hold det organiseret.
Kommentarer
- I ' Jeg skal være meget bekymret for, at der oprettes en databasetabel inde i et AJAX-opkald fuldstop
Svar
der er en god WordPress-funktion, der hjælper dig, når som helst du ikke vil kontrollere, om der mangler “/” på din sti.
trailingslashit
dit eksempel skal være den anbefalede måde at skrive på:
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
ved hjælp af denne funktion, du aldrig er nødt til at placere “/” foran din “relative” sti, da denne funktion sørger for, at “/” i tilfælde af mangler.
det er derfor, vi har oprettet den funktion i WordPress.
Svar
ABSPATH
fungerer, du skal medtage wp-load-fil. include "../../../wp-load.php";
Svar
Du skal behøver ikke / men prøv et skråstreg i starten af / wp-admin
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
Men kontrollerede du, om / wp-admin / admin-insert. php-fil findes?
Er ABSPATH defineret? Tilføj følgende for at kontrollere:
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
Prøver du også at køre dette uden at indlæse WP? Derudover kan du prøve site_url () og arbejde med det.
Svar
ABSPATH bør allerede indeholde en efterfølgende skråstreg. Du skal medtage din opgraderingsfil fra hovedplugin-filen. Måske skal du tilslutte dig “plugins_loaded” -handling eller “init” og derefter kalde opgraderingsmetoden.
ABSPATH
ser ikke ud til at være defineret. Hvor bruger du den?ABSPATH
og førwp-admin/
. Prøv dette:ABSPATH . '/wp-admin/
. Og overvej dette StackOverflow WP-spørgsmål også./wp-admin/admin-insert.php
? Dette er ikke kernen. Ændrer du WordPress-kernen?