如果我们需要调用WordPress网站文章中的图片,我们可以通过直接获取媒体图片的方式,当然也是有插件可以调用的。在这篇文章中,老蒋需要分享的是无插件可以实现调用WP程序中所有文章的图片。这个其实对于有些图片类型的网站是有用的,我们需要展示所有的图片。
第一、脚本部分
> function hui_get_thumbnail( $single=true, $must=true ) {
> global $post;
> $html = '';
> if ( has_post_thumbnail() ) {
> $domsxe = simplexml_load_string(get_the_post_thumbnail());
> $src = $domsxe->attributes()->src;
> $src_array = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail');
> $html = sprintf('<li><img src="%s" /></li>', $src_array[0]);
> } else {
> $content = $post->post_content;
> preg_match_all('/<img.?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?🙁?: |\\t|\\r|\\n)+.?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);
> $images = $strResult[1];
> $counter = count($strResult[1]);
> $i = 0;
> foreach($images as $src){
> $i++;
> $src2 = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail');
> $src2 = $src2[0];
> if( !$src2 && true ){
> $src = $src;
> }else{
> $src = $src2;
> }
> $item = sprintf('<li><img src="%s" /></li>', $src);
> if( $single){
> return $item;
> break;
> }
> $html .= $item;
> if(
> ($counter >= 4 && $counter < 8 && $i >= 4) ||
> ($counter >= 8 && $i >= 8) ||
> ($counter > 0 && $counter < 4 && $i >= $counter)
> ){
> break;
> }
> }
> }
> return $html;
> }
> function hui_get_attachment_id_from_src ($link) {
> global $wpdb;
> $link = preg_replace('/-\d+x\d+(?=\.(jpg|jpeg|png|gif)$)/i', '', $link);
> return $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE guid='$link'");
> }
将代码加入到当前主题的Functions.php文件中。
第二、如何调用
> <?php echo hui_get_thumbnail(false,true);?>
在我们需要调用的主题单页面或者是某个页面直接加入代码就可以调出图片。