Парсинг заголовков и url в записи.
У меня есть спаршеные записи но плагин парсит заголовки не так как надо было. А url и вовсе не тянет.
Я используя библиотеку simple_html_dom
вывожу нужные заголовки и url с сайта.
Но не могу правильно их переписать в существующие записи.
То есть не стоит цель спарсить всё заново, а лишь переписать заголовки с url.
$html = file_get_html('ссылка на страницу сайта с ссылками на запипи'); $my_posts = get_posts('category=7'); //Категория рубрик foreach($html->find('.art_list a') as $html_title) // Находим и перебираем нужные теги { echo '<a href="'. $html_title->href .'">'.$html_title->plaintext.'</a>'; //Выводит ссылки с сайта (не обязательно, просто, чтобы увидеть какие данные мы получаем) foreach ($my_posts as $post) //Перебераем посты { $my_post = [ 'ID' => $post->ID, 'post_title' => $html_title->plaintext, 'post_name' => substr($html_title->href, 25) ];//Записываем данные для постов wp_update_post(wp_slash($my_post)); //Перезаписываем } }
Казалось бы всё работает но, на самом деле оно на каждый пост записывает данные последнего найденой ссылки с другого сайта.
То есть у меня есть в 7 категории 3 поста, и после перезаписи у всех один и тот же заголовок и url.
Не понимаю как грамотно построить алгоритм.
Ну так у вас так скрипт и работает.
Вы получаете какие-то $html_title-ы проходитесь по ним в цикле и каждый раз результат записываете всем своим $my_posts.
Естественно у вас последний результат записывается вашим трем постам.
На самом деле, совершенно не понятна задумка.
Например если у вас ссылок больше чем записей.
Спасибо вам за ответ. Вообще сначала планировал парсить посты. Но так как вставл в тупик не понимал как мне ещё и контент достать, решил просто переписать титлы и урлы. Нооо потом я придумал как достать и контент и создать заново посты.
И таким образом я с нужными заголовками и url спарсил 6к статей с оригинального сайта.
P.S да и вообще я бы с этим делом не заморачивался, но так как от заказчика стояла задача и url перенести, пришлось придумывать решение. Ибо имеющиеся плагины этой функции не предоставляют.