Сохранять только изменяемую запись
Есть скрипт, который удаляет известные ссылки из текста записи нужной записи, он работает. Как сделать, чтобы сохранялись только измененные записи, а не все?
include_once('simple_html_dom.php');
function links_remove () {
$links_mass = json_decode(file_get_contents('exlinks.json')); //массив известных внешних ссылок, которые надо удалить
$allurl = json_decode(file_get_contents('links.json')); //массив ссылок на записи, в которых есть внешние ссылки
foreach((array) $allurl as $jurl) {
$id = url_to_postid($jurl);
$post = get_post($id);
$content = wpautop($post->post_content);
$html = str_get_html($content);
foreach($html->find('a') as $element) {
foreach($links_mass as $link) {
if (strpos($element->href, $link) !== false) {
$element->outertext = $element->innertext;
}
}
}
$post->post_content = (string) $html->save();
wp_update_post( $post );
}
}
add_action ('init', 'links_remove');
Ответы (1 шт):
Автор решения: W1ns
→ Ссылка
Сделал, спасибо.
include_once('simple_html_dom.php');
function links_remove() {
$links_mass = json_decode(file_get_contents('exlinks.json'));
$allurl = json_decode(file_get_contents('links.json'));
foreach ((array) $allurl as $jurl) {
$id = url_to_postid($jurl);
$post = get_post($id);
$content = wpautop($post->post_content);
$html = str_get_html($content);
$changed = false;
foreach ($html->find('a') as $element) {
foreach ($links_mass as $link) {
if (strpos($element->href, $link) !== false) {
$element->outertext = $element->innertext;
$changed = true;
}
}
}
if ($changed) {
$post->post_content = (string) $html->save();
wp_update_post($post);
}
}
}
add_action('init', 'links_remove');