Получить список записей относительно просто:
SELECT post_title, ID, post_content
FROM wp_posts
WHERE post_content REGEXP '<img class="[^"]*"'
AND post_status = 'publish'
ORDER BY ID
Извлечь из контента сами совпадения с помощью MySQL сложнее (особенно если их несколько в одной записи), но можно обработать полученные результаты в PHP, примерно так:
global $wpdb;
$img_class_regexp = '<img class="[^"]*"';
$posts = $wpdb->get_results(
"SELECT post_title, ID, post_content
FROM $wpdb->posts
WHERE post_content REGEXP '$img_class_regexp'
AND post_status = 'publish'
ORDER BY ID"
);
$results = array();
foreach ( $posts as $post ) {
preg_match_all( "/$img_class_regexp/", $post->post_content, $matches );
foreach ( $matches[0] as $img_class ) {
$results[] = array(
'post_title' => $post->post_title,
'ID' => $post->ID,
'img_class' => $img_class
);
}
}
?>
<table>
<?php foreach ( $results as $result ) : ?>
<tr>
<td><?php echo $result['post_title']; ?></td>
<td><?php echo $result['ID']; ?></td>
<td><?php echo esc_html( $result['img_class'] ); ?></td>
</tr>
<?php endforeach; ?>
</table>
Получится таблица следующего вида:
Hello world! 82 <img class="alignnone size-medium wp-image-61"
Title 160 <img class="alignnone size-full wp-image-3"
test 1810 <img class="alignnone size-medium wp-image-181"
Большое спасибо Еще подскажите пару вопросов.
1. Куда вставлять SQL?
2. куда вставлять PHP?
Я вставлял SQL запрос в phpmyadmin во вкладку SQL — ответ формируется, а как к нему применить php?
Спасибо
или, я правильно понял, что внутри php уже есть запрос к безе?
если да, то остается один вопрос — куда вставлять php?
С помощью плагина выполнил в записи, получил результат. Это правильное решение?