خواندن اطلاعات پایگاه داده وردپرس از فایل wp-config به وسیله php
طراحی سایت با وردپرس همیشه نمیتواند کلیه نیازهای پروژه طراحی سایت را برآورده کند. گاهی لازم است تا در کنار وردپرس یک نرمافزار تحت وب نیز به صورت اختصاصی برنامهنویسی شود و این دو سیستم در کنار هم به فعالیت بپردازند.
برای مثال در یک سیستم فروشگاه اینترنتی که به صورت اختصاصی نوشته شده است ممکن است بخواهیم یک وبلاگ حرفهای با وردپرس هم راهاندازی نماییم. فروشگاه اینترنتی دیجیکالا از این روش برای راه اندازی بلاگ خود استفاده کرده است.
برای ایجاد ارتباط بین سیستم برنامهنویسی و سیستم وردپرس، لازم است تا به اطلاعات پایگاه داده وردپرس دسترسی پیدا کنیم. در ادامه یک تابع که با زبان php نوشته شده است و کار خواندن محتویات فایل wp-config.php را انجام میدهد مشاهده میکنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function get_wordpress_data() { $content = @file_get_contents( '../wp-config.php' ); if( ! $content ) { return false; } $params = [ 'db_name' => "/define.+?'DB_NAME'.+?'(.*?)'.+/", 'db_user' => "/define.+?'DB_USER'.+?'(.*?)'.+/", 'db_password' => "/define.+?'DB_PASSWORD'.+?'(.*?)'.+/", 'db_host' => "/define.+?'DB_HOST'.+?'(.*?)'.+/", 'table_prefix' => "/\\\$table_prefix.+?'(.+?)'.+/", ]; $return = []; foreach( $params as $key => $value ) { $found = preg_match_all( $value, $content, $result ); if( $found ) { $return[ $key ] = $result[ 1 ][ 0 ]; } else { $return[ $key ] = false; } } return $return; } |
برای استفاده از این تابع کافی است تا نام آن را فراخوانید کنید و مقدار بازگشتی را که آرایهای به شکل زیر است، استفاده نمایید:
1 2 3 4 5 |
array (size=4) 'db_name' => string 'roka' 'db_user' => string 'roka-user' 'db_password' => string 'roka-password' 'db_host' => string 'localhost' |
در قطعه کد بالا از عبارتهای باقاعده( Regex ) برای استخراج اطلاعات استفاده شده است و اگر ساختار فایل wp-config با ساختار اصلی و اولیه تفاوتهای قابل توجهی داشته باشد، ممکن است این تابع نتواند اطلاعات را استخراج کند و مقدار false برگرداند.
روش دیگر برای دسترسی به اطلاعات پایگاه داده وردپرس
اگر برای برنامهنویسی از یک سیستم ساده( بدون فریمورک ) استفاده کرده باشید و بخواهید علاوه بر اطلاعات پایگاه داده وردپرس به توابع وردپرس نیز دسترسی پیدا کنید، با include کردن فایل wp-load.php وردپرس، هم به این اطلاعات دسترسی پیدا میکنید و هم میتوانید از توابع و کلاسهای وردپرس برای انجام تغییرات در آن استفاده کنید.
چنانچه محیط اجرای کدها داخل فریمورکهایی مثل لاراول باشد، به دلیل تداخل نام توابع وردپرس با توابع فریمورک با مشکل مواجه خواهید شد و این روش به سادگی قابل استفاده نیست.
سلام من میخوام تعداد نوشته ها ی وردپرس رو با php بخونم.
یعنی یه صفحه ساده وب بنویسم که بنویسه فلان سایت x عدد مطلب منتشر شده داره. جدول رو در phpmyadmin پیدا کردم اما هر چیزی که در وردپرس هست و نیست داخل اون جدوله.
چطور میتونم بگم php فقط تعداد نوشته ها رو بخونه؟
با تشکر
با سلام
این مطلب در مورد موضوعی دیگر است و اگر با ساختار جداول وردپرس و شیوهی نوشتن کوئری روی پایگاه داده مشکل دارید باید زمان صرف کنید و با موارد فوق آشنایی پیدا کنید