워드프레스 플러그인에 $wpdb를 포함하려면 어떻게 해야 합니까?
얼마 동안 개발해온 건plugin
wordpress
하지만 한 가지 문제가 계속 저를 괴롭힙니다..$wpdb->variable
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
어떤 클래스를 포함해야 하는지 설명하는 블로그 엔트리를 찾았는데, 작동하지 않습니다(아래 링크 참조).는 '하다', '', '다'를 한다.var_dump
이치노를 남겨두면, 「」의 「」의 「」를 합니다.wp-config
★★★★★★★★★★★★★★★★★」wp-load
, 덤프 「」, 「」returns NULL
을 사용법
어쨌든, 나는 이 문제에 대해 누군가 나를 도와줄 수 있기를 바라고 있었다.접근 방식을 수정할 필요는 없습니다.단, 워드프레스에서 뛰어난 성능을 얻기 위해 (내 db에서 가져온) 데이터 배열을 내보내는 방법이 필요합니다.어떤 도움이라도 주시면 감사하겠습니다.잘 부탁드립니다.
include_once('../../../wp-config.php');
include_once('../../../wp-load.php');
include_once('../../../wp-includes/wp-db.php');
var_dump($wpdb);
$filter = get_where_clause();
$order = get_order_by_clause();
$data = $wpdb->get_results("SELECT * FROM " . $table_prefix . "team_data" . $filter . $order, ARRAY_A);
$result = array();
편집: 다음 항목은 포함할 수 없습니다.wp-config
에러가 계속 발생합니다.을 , 을 보면.wp-settings
wp-config 에 ( wp - config ) 。
foreach ( wp_get_active_and_valid_plugins() as $plugin )
include_once( $plugin );
unset( $plugin );
여기가 벌레가 있는 곳입니다.이 버그를 어떻게 해결해야 할지 모르겠어요.
편집 2: 문제가 해결되었습니다.파일을 포함시킬 때, 저는 그 파일을 포함시켰습니다.wp-config
(한 번만 포함된다고 했는데도) 여러 번 언급했습니다.다음 코드를 사용하여 문제를 해결했습니다.
global $wpdb, $table_prefix;
if(!isset($wpdb))
{
require_once('../../../../wp-config.php');
require_once('../../../../wp-includes/wp-db.php');
}
WordPress 플러그인을 만드는 경우 이러한 파일을 수동으로 포함할 필요가 없습니다.
'/어울리다/어울리다'를 $wpdb
(필요한 경우) 할 수 있습니다.일반 MySQLi 클래스(PHP에서)를 사용하여 MySQL 데이터베이스에 액세스할 수도 있습니다.
WordPress에서 에 액세스하는 할 수 .wp_config
WordPress를 사용합니다.데이터베이스 접속에 사용할 수 있는 (자체 설명) 글로벌필드가 있습니다.
include "WP-ROOT-PATH/wp-config.php";
$db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
// Test the connection:
if (mysqli_connect_errno()){
// Connection Error
exit("Couldn't connect to the database: ".mysqli_connect_error());
}
그런 다음 데이터베이스 액세스에 사용할 수 있는 MySQLi 클래스의 인스턴스(상기 참조)가 생성됩니다.
하지만 이것이 완벽한 방법인지는 모르겠지만 확실히 효과가 있다.
WordPress를 디버깅하려면(무엇이 작동하지 않고 오류 메시지가 없는 경우)에서 디버깅을 활성화해야 합니다.wp-config.php
- 파일:
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*/
define('WP_DEBUG', true);
또한 로컬 서버에서 PHP-스크립트를 테스트하는 경우,display_error
로.on
당신의 안에서php.ini
- 파일:
; This directive controls whether or not and where PHP will output errors,
; notices and warnings too. Error output is very useful during development, but
; it could be very dangerous in production environments.
display_errors = On
단, 이것은 로컬테스트 서버에서만 실행해 주세요.생산적인 시나리오에서는 실행할 수 없습니다.
하드 솔루션에서 벗어나 다음 방법을 사용합니다.
define( 'SHORTINIT', true );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
언급URL : https://stackoverflow.com/questions/6217098/how-to-include-wpdb-in-wordpress-plugin
'bestsource' 카테고리의 다른 글
AJAX에서 WordPress 페이지 지정이 작동하지 않음 (0) | 2023.03.05 |
---|---|
Firefox 또는 Chrome 브라우저에서 HTTP POST 요청을 수동으로 보내는 방법 (0) | 2023.03.05 |
Angular js - 모든 $http()가 완료되었음을 감지합니다. (0) | 2023.03.05 |
AngularJS에서 ng-repeat 스크롤 위치를 유지하는 방법은 무엇입니까? (0) | 2023.03.05 |
스프링을 사용하여 옵션 경로 변수를 만들 수 있습니까? (0) | 2023.02.28 |