Puedes ejecutar una función para encontrar y extraer tu contenido multimedia en una publicación
add_action('the_content', function($content) {
$mediaRegex = "/(src|href)=\"(.+?).(jpg|png|pdf)\"/i";
$mediaFind = preg_match_all($mediaRegex, $content, $media);
if (isset($media[2]) && count($media[2]) > 0)
$content = "<pre>MEDIA WITHIN THIS PAGE: \n".print_r($media[2],true)."</pre>".$content;
return $content;
});
Puede modificar el patrón de expresiones regulares para adaptarse mejor a su configuración. Puede hacer que la expresión regular tome los nombres de clase de los medios insertados (en lugar de las URL) y recupere los ID de los archivos adjuntos de esa manera.
Y / o si desea refinar aún más los medios encontrados, asegurándose de que estén en su biblioteca de medios, puede poner las URL de los elementos de medios de su biblioteca en una matriz:
// get the media library for comparison
$library = array();
$args = array(
'post_type' => 'attachment',
//'post_mime_type' => 'image', // if theres only one
'numberposts' => -1,
'post_status' => null,
'post_parent' => null,
);
$attachments = get_posts($args);
foreach ($attachments as $post)
$library[] = wp_get_attachment_url($post->ID);
Luego escribe un código para discutir algo como in_array()
para coincidencias individuales de $media[2]
vs $library
. Dependiendo del uso, es posible que desee agregar Wordpress Transients y envolver el fragmento de la biblioteca.