Operowałem na danych zrzutu z MariaDB

def searchtwo(tytul_wp_posts_nowe):
    for i in wp_posts_stare_lines:
        if tytul_wp_posts_nowe in i:
            l = i.split('|')
            return l[1].strip()

def searchthree(id_wp_posts_stary):
    for i in wp_postmeta_stare_lines_thumbnail:
        if id_wp_posts_stary in i:
            return i.split('|')[4].strip()

def searchfour(thumbnail_id_stare):
    for i in wp_postmeta_stare_lines_attached_file:
        if thumbnail_id_stare in i:
            return i.split('|')[4].strip()

with open('wp_posts_stare.txt', 'r') as f_wp_posts_stare:
    wp_posts_stare_lines = f_wp_posts_stare.readlines()[39:1143]


with open('wp_postmeta_stare.txt', 'r') as f_wp_postmeta_stare:
    lines = f_wp_postmeta_stare.readlines()
    wp_postmeta_stare_lines_thumbnail = lines[4:971]
    wp_postmeta_stare_lines_attached_file = lines[972:3979]


with open('wp_posts_nowe.txt', 'r') as f_wp_posts_nowe:
    wp_posts_nowe_lines = f_wp_posts_nowe.readlines()[35:1138]
    for line in wp_posts_nowe_lines:
        id_wp_posts_nowe = line.split('|')[1].strip()
        tytul_wp_posts_nowe = line.split('|')[3].strip()
        id_wp_posts_stary = searchtwo(tytul_wp_posts_nowe)
        if id_wp_posts_stary is None:
            continue
        thumbnail_id_stare = searchthree(id_wp_posts_stary)
        if thumbnail_id_stare is None:
            continue
        lokalizacja_zdjecia_stara = searchfour(thumbnail_id_stare)
        print(id_wp_posts_nowe, lokalizacja_zdjecia_stara)

Przykładowy wynik wykonywania zawierał numer wpisu i lokalizację obrazka wyróżniającego

2958 2017/09/DSC_0758.jpg
2954 2017/09/JakubBanaszak.jpg
2950 2018/04/30776948_10211409708611457_1028271925_n.jpg
2946 2017/09/MarekGralik.jpg
2943 2017/09/HumanistaRoku.jpg
2941 2017/05/logo.png

Taki wynik wrzuciłem do wrappera na wp-cli:

import os

p = '/var/www/html/wordpress/wp-content/uploads/'

with open('wyniki.txt', 'r') as f:
    lines = f.readlines()[:20]
    for l in lines:
        wzledny_adres = l.split()[1]
        if os.path.isfile(p + wzledny_adres):
            os.system(f'wp media import {p + wzledny_adres} \
                      --post_id={l.split()[0]} --featured_image')
        else:
            print('Brak')

Przy okazji zobaczyłem też, czego nie udało się zaimportować

Po udanym imporcie usunąłem tę linijkę z wykonaniem kodu (na dodatek: w zależności od tekstu z pliku. Konkatenacja zawsze gryzie…)

Obróbka danych w formacie csv chyba jest prostsza