WordPress olmayan saytın contentini wordpress-ə köçürmək

Salamlar. Laravel 4 ilə yazılmış db həcmi harda 10 gb yaxın bir xəbər saytı var. DB strukturu təbii ki wordpress db strukturundan tamamilə fərqlidir. Həmən sayta olan xəbərləri köçürmək lazımdır wordpressə. hər iki serverdə ssh və sftp girişim var. Təcrübəsi olanlardan xahiş edirəm öz təcrübələrini bölüşsünlər. Parser yazacam o heç. kohne saytdan dataları clean eləyib title content excerpt featured_image hamısını çıxaracam. bunu sizcə vordpress üçün bir plugin yazıb birbaşa remote mysql ilə laravel olan db a qoşulub çəksəm və for a salib insert elesəm vorspress ə alinar elə? yoxsa evvelce wp olan serverde bir db yaradib import eleyim oldugu kimi sql i ve localdan qosulub insert edim? ve ya umumiyyetle plugin ve browser ile yox command line bir script yazim eleyim? Content boyuk oldugu ucun timeout falan verme ehtimali var bir defeye etsem. umumiyyetle nece problemsiz kocure bilerem? Teshekkur edirem onceden.

Verilmiş cavablar və yazılan şərhlər (3 cavab var)

E. Hacı (2020-08-13 15:17:07)
Mən də elə edirəm adətən. Bu yaxında pure php və custom db ile olan 3.5 milyon obyekti olan data var idi. Wpye inteqrasiyanı eynən ele elədim. Hər dəfə bağlanır 500 post götürür wp-ya inteqrasiya edir wp tərəfdə yazdığım script ilə. Növbəti requestde də əvvəl harda qaldığını store etmisem deye >ID şərti ilə harda qalıbsa ordan davam edir. Tələsik deyildi deyə dəqiqəlik cron job ilə qoydum sakitcə arxada çalışaraq dörd beş günə tamamladı. Amma təcili lazım olsaydı bir neçə saata da bitirmək olardı batch ölçüsünü böyük etməklə.

Emin Rəhmanov (2020-08-13 12:17:19)
Təşəkkür edirəm ətraflı izah üçün. 1 ci yol daha asan gəldi nəsə. Həmdə category ləri id lərini array a yığıb replace etmək üçün. Xml fayl çox böyük olacaq onunla işləmək biraz çətin olar. Foreach ilə ama limit verə verə hissə hissə etmək olar.

E. Hacı (2020-08-13 00:26:58)
Əslində dediklərinizin hər biri mümkündür. hansı asan gəlirsə onunla edə bilərsiniz. Şəxsən mən remote mysql ilə edərdim ya da digər bir yolla, aşağıda yazıram. 1. WP-də "new wpdb()" declare edib remote-a qoşulma imkanı var, default DB local qala-qala. Deməli WP-nin içində bir dənə commant line dəstəkli ($argv[1] ilə run olan məsələn) bir blok yaratsanız ki, qoşulsun remote db-ya foreach ilə bir bir oxuyub import eləsin wp-ya. 2. Alternativ yol da o olardı ki, wp-nin dəstəklədiyi xml import faylının strukturunu götürürsünüz(wp-admin->tools->export etməklə şablonu götürə bilərsiniz oradan), nəhəng data ilə də olsa eynisini yaraddırsınız laravel olan serverdə. Sonra memory_limit max artırırsız, set time limit də həmçinin. Və SCP ilə o XML faylı çəkirsiniz WP-ya, WP-CLI command-line tool-u ilə run edirsiniz. ( wp import ...) Bu iki yolun hər ikisi mümkün görünür. sadəcə ikinci yolda WP tərəfdə işiniz az olmuş olur, hər şeyi hazır import toolu ilə edirsiniz. Ona görə də custom code-u təkcə laravel tərəfdə yazırsınız ki böyük XMLfaylını generate edə bilsin

Mövzu üzrə bənzər suallara da baxa bilərsiniz.

WordPress default post args change

WordPress yoxsa DLE ?

Demotivators.ru saytına oxşar wordpress tema

Saytda sayğac yerləşdirmək

WordPress hazir tema haqqinda

Javascript div content dəyişməkdə kömək.