WordPress의 Absolute Path (ABSPATH)가 작동하지 않습니다.
On 11월 30, 2020 by admin현재 플러그인 정보를 데이터베이스에 저장하는 작은 작업을 수행하고 있지만 다음에 관한 문제가 있습니다. 쿼리를 실행하는 기능이있는 파일을 포함합니다.
파일이 포함 된 줄은 다음과 같습니다.
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
하지만 코드를 실행하면 다음이 표시됩니다.
경고 :
require_once(ABSPATHwp-admin/includes/upgrade.php)
: 스트림을 열지 못했습니다. iv id의/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php
에 해당 파일 또는 디렉토리가 없습니다. = “b1102cc5da”>
18 행
검색을 많이했지만 검색 할 수 없습니다. 유용하거나 도움이되는 것을 찾으세요.
수정
다음은 내 코드입니다.
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 );`
댓글
답변
insert.php
파일을 직접 만들었습니다. 실제로 저는 워드 프레스를 처음 사용합니다. 제가하는 실수가 있습니까? 사실 저는 데이터베이스에 플러그인 양식 정보를 저장하고 싶습니다.
귀하의 질문은 세부 사항에 대해 매우 가볍지 만 당신이 저지르는 실수는 로딩이라고 생각합니다. WordPress의 컨텍스트 외부에서로드되는 방식 또는 WordPress의 일부만로드되는 방식으로 파일.
귀하의 질문에 대한 세부 정보 부족 (코드에 대한 컨텍스트의 거의 완전하지 않음)으로 인해 확실한 답변을 제공 할 수 없지만 다음을 통해 코드를 실행해야한다고 제안합니다. AJAX API (엄격하게 AJAX가 아니더라도). 이와 유사 : https://wordpress.stackexchange.com/a/108145/21376
더 나은 답변을 원하면 더 나은 질문을 작성해야합니다. 질문 아래의 “수정”버튼을 클릭하고 가능한 한 많은 세부 정보를 추가하되 체계적으로 유지하세요.
댓글
- I ' 데이터베이스 테이블이 AJAX 호출 fullstop 내에서 생성되는 것을 매우 걱정할 것입니다.
Answer
경로에서 누락 된 “/”를 확인하고 싶지 않을 때 언제든지 도움이되는 멋진 WordPress 기능이 있습니다.
trailingslashit
예를 작성하는 것이 좋습니다.
require_once( trailingslashit( ABSPATH ) . "wp-admin/includes/upgrade.php" );
이 함수를 사용하면 절대 이 함수는 “/”가 누락 된 경우를 대비하여 “/”를 “상대”경로 앞에 넣어야합니다.
이것이 WordPress에서 해당 함수를 만든 이유입니다.
Answer
ABSPATH
는 wp-load 파일을 포함해야합니다. include "../../../wp-load.php";
답변
/는 필요하지 않지만 / wp-admin의 시작 부분에 슬래시를 입력합니다.
require_once( ABSPATH . "/wp-admin/includes/upgrade.php" );
하지만 / wp-admin / admin-insert인지 확인 했습니까? php 파일이 있습니까?
ABSPATH가 정의되어 있습니까? 확인하려면 다음을 추가하십시오.
// Is ABSPATH defined? if ( !defined("ABSPATH") ) die("-1");
또한 WP를로드하지 않고 실행하려고합니까? 또한 site_url ()을 사용해보고 작업 할 수 있습니다.
Answer
ABSPATH에는 이미 후행 슬래시가 포함되어 있어야합니다. 기본 플러그인 파일의 업그레이드 파일을 포함해야합니다. “plugins_loaded”작업 또는 “init”에 연결 한 다음 업그레이드 메서드를 호출해야 할 수도 있습니다.
ABSPATH
가 정의되지 않은 것 같습니다. 어디에서 사용합니까?ABSPATH
뒤와wp-admin/
앞에 슬래시가 누락되었을 수 있습니다. 시도해보세요 :ABSPATH . '/wp-admin/
. 그리고 이 StackOverflow WP 질문 도 고려하세요./wp-admin/admin-insert.php
? 이것은 핵심이 아닙니다. WordPress 코어를 수정하고 있습니까?