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ə.
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.
Ə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
WordPress default post args change
Demotivators.ru saytına oxşar wordpress tema
Javascript div content dəyişməkdə kömək.