Unde se află Biblioteca Media în baza de date?
Export un site WordPress de pe localhost pe un host web și nu pot importa Biblioteca Media, deoarece hostul web nu poate contacta localhost-ul.
Am încărcat toate fișierele de pe localhost din /wp-content/uploads/... și mă gândesc că trebuie doar să identific partea din baza de date MySQL care conține Biblioteca Media, să ajustez URL-ul și apoi să import SQL-ul în baza de date de pe hostul web.
Îmi puteți spune unde se află Biblioteca Media în baza de date MySQL?
Select * from wp_posts where post_type = 'attachment';
Va returna toate intrările din Biblioteca Media.
După execuție, puteți exporta tabelul cu rezultate în format SQL, CSV sau orice alt format de date portabil preferați. Amintiți-vă, dacă nu sunteți sigur dacă intrările există deja în baza de date, folosiți instrucțiunea INSERT IGNORE
în loc de INSERT
. (Acest lucru este posibil prin panoul de export din phpMyAdmin sau alte client MySQL).
De asemenea, există intrări care se referă la Biblioteca Media în fiecare articol, cum ar fi imaginile atașate sau imaginile miniatură, care sunt stocate în tabelul wp_postmeta
. WordPress le stochează astfel încât media să fie "atașată" la articole sau pagini. Dacă doriți să le exportați și pe acestea, va trebui să folosiți ceva de genul:
SELECT * FROM `wp_postmeta`
WHERE meta_key IN (
'_wp_attached_file',
'_wp_attachment_backup_sizes',
'_wp_attachment_metadata',
'_thumbnail_id'
)
Și apoi le puteți exporta oriunde doriți. Aceasta este toată informația pe care o știu despre Biblioteca Media în WordPress.

Mi-ai oferit o mică rază de lumină în lumea întunecată care este dezvoltarea în WordPress

Biblioteca Media se află atât în wp_posts cât și în wp_postmeta.
- wp_postmeta conține URL-ul imaginii
- wp_posts conține o intrare pentru fiecare inserare de imagine într-un articol, împreună cu ID-ul articolului.
Exportarea și importarea acestor 2 tabele ca SQL nu a funcționat pentru mine - am primit eroarea 'duplicate entry for key 7'...
Exportarea și importarea acestor 2 tabele ca CSV a funcționat, folosind "CSV using load data".
Înainte de import, am golit cele 2 tabele din baza de date destinatară.

O alternativă pentru a migra de la mediul local de dezvoltare la un gazdă la distanță este utilizarea WP Migrate DB.

SELECT
p.ID,
p.post_title AS title,
p.post_name AS post_name,
(SELECT meta_value from wp_postmeta where post_id = m.meta_value and meta_key='_wp_attachment_metadata') AS meta_value
FROM
wp_posts p,
wp_postmeta m
WHERE
p.post_type = 'post'
AND p.post_status = 'publish'
AND p.id = m.post_id
AND m.meta_key = '_thumbnail_id'
ORDER BY
p.post_date DESC
LIMIT 5;
Apoi folosiți PHP unserialize pe 'meta_value'
