bestsource

워드프레스 플러그인에 $wpdb를 포함하려면 어떻게 해야 합니까?

bestsource 2023. 3. 5. 10:12
반응형

워드프레스 플러그인에 $wpdb를 포함하려면 어떻게 해야 합니까?

얼마 동안 개발해온 건pluginwordpress하지만 한 가지 문제가 계속 저를 괴롭힙니다..$wpdb->variable★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

어떤 클래스를 포함해야 하는지 설명하는 블로그 엔트리를 찾았는데, 작동하지 않습니다(아래 링크 참조).는 '하다', '', '다'를 한다.var_dump이치노를 남겨두면, 「」의 「」의 「」를 합니다.wp-config ★★★★★★★★★★★★★★★★★」wp-load, 덤프 「」, 「」returns NULL을 사용법

어쨌든, 나는 이 문제에 대해 누군가 나를 도와줄 수 있기를 바라고 있었다.접근 방식을 수정할 필요는 없습니다.단, 워드프레스에서 뛰어난 성능을 얻기 위해 (내 db에서 가져온) 데이터 배열을 내보내는 방법이 필요합니다.어떤 도움이라도 주시면 감사하겠습니다.잘 부탁드립니다.

http://www.notesbit.com/index.php/web-mysql/web-scripts/standalone-access-the-wordpress-database-using-wpdb/

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-settingswp-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_configWordPress를 사용합니다.데이터베이스 접속에 사용할 수 있는 (자체 설명) 글로벌필드가 있습니다.

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

반응형