Caminho absoluto (ABSPATH) no WordPress não está funcionando
On Novembro 30, 2020 by adminAtualmente, estou trabalhando em uma pequena tarefa que armazena informações de plug-in no banco de dados, mas tenho problemas em relação inclua o arquivo que possui as funções para executar a consulta.
Esta é a linha que inclui o arquivo:
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
mas recebi o seguinte quando executo o código:
Aviso:
require_once(ABSPATHwp-admin/includes/upgrade.php)
: falha ao abrir o stream: Não existe esse arquivo ou diretório em/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
em linha 18
Pesquisei muito, mas não consigo encontre qualquer coisa útil ou útil.
EDITAR
Aqui está meu código:
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 );`
Comentários
Resposta
insert.php
arquivo que eu mesmo fiz, na verdade eu sou novo no wordpress, quero isso, há algum erro que estou cometendo? Na verdade, eu quero armazenar as informações do formulário de um plugin no banco de dados.
Sua pergunta é muito leve em detalhes, mas suspeito que o erro que você está cometendo está carregando um arquivo de forma que seja carregado fora do contexto do WordPress ou de forma que apenas partes do WordPress sejam carregadas.
A falta de detalhes em sua pergunta – a quase completa falta de contexto para o código – torna impossível fornecer uma resposta sólida, mas estou inclinado a sugerir que você precisa executar seu código por meio do API AJAX (mesmo que não seja estritamente AJAX). Algo assim: https://wordpress.stackexchange.com/a/108145/21376
Se quiser uma resposta melhor, você deve escrever uma pergunta melhor. Clique no botão “editar” abaixo da sua pergunta e adicione o máximo de detalhes possível, mas mantenha-a organizada.
Comentários
- I ' d estar bastante preocupado que uma tabela de banco de dados esteja sendo criada dentro de uma parada total de chamada AJAX
Resposta
há uma função agradável do WordPress que ajuda você sempre que você não quiser verificar se há “/” ausente no seu caminho.
trailingslashit
seu exemplo deve ser escrito da maneira recomendada:
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
usando esta função, você nunca tem que colocar “/” na frente do seu caminho “relativo”, pois esta função garante que “/” estará no caso de estar faltando.
é por isso que criamos essa função no WordPress.
Resposta
ABSPATH
funcionará, você precisa incluir o arquivo wp-load. include "../../../wp-load.php";
Resposta
Você deveria não precisa do / mas tente uma barra no início do / wp-admin
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
Mas você verificou se / wp-admin / admin-insert. arquivo php existe?
O ABSPATH está definido? Adicione o seguinte para verificar:
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
Além disso, você está tentando executar isso sem carregar o WP? Além disso, você pode tentar site_url () e trabalhar com ele.
Resposta
ABSPATH já deve conter uma barra final. Você precisa incluir seu arquivo de atualização do arquivo principal do plugin. Talvez você precise se conectar à ação “plugins_loaded” ou “init” e, em seguida, chamar o método de atualização.
ABSPATH
não parece estar definido. Onde você o está usando?ABSPATH
e antes dewp-admin/
. Experimente:ABSPATH . '/wp-admin/
. E considere esta pergunta StackOverflow WP também./wp-admin/admin-insert.php
? Isso não está no centro. Estão modificando o núcleo do WordPress?