问题描述

我想将创建的标记从标准 (dl) 更改为具有差异的 unordered-list 。以下是所需的标记:

<ul>
    <li><a href="/path/to/image.jpg"><img src="/path/to/image.jpg" /></a></li>
    <li><a href="/path/to/image2.jpg"><img src="/path/to/image2.jpg" /></a></li>
    <!-- And so on, all in one ul -->
</ul> 

我想要主图像源的链接& img,因为我想通过 php cropper 脚本运行 img src 。

这可能吗?我相信我们可以破解它!

最佳解决方案

感谢您的回复,Jan& Rarst 。他们指出我正确的方向。这是我结束的。

这将禁用内容中的缩写。完美的这个网站& 该功能附加图像& 吐出来作为列表。 (我发现这个功能在某处,并将它缩小一点)

// Removed shortcodes from the content
add_filter('the_content', 'strip_shortcodes');

// Get attached images & spits out a list of them.
function nerdy_get_images($size = 'thumbnail', $limit = '0', $offset = '0') {
    global $post;
    $images = get_children( array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') );
    if ($images) {
        $num_of_images = count($images);
        if ($offset > 0) : $start = $offset--; else : $start = 0; endif;
        if ($limit > 0) : $stop = $limit+$start; else : $stop = $num_of_images; endif;
        $i = 0;
        foreach ($images as $image) {
            if ($start <= $i and $i < $stop) {
            $img_title = $image->post_title;   // title.
            $img_description = $image->post_content; // description.
            $img_caption = $image->post_excerpt; // caption.
            $img_url = wp_get_attachment_url($image->ID); // url of the full size image.
            $preview_array = image_downsize( $image->ID, $size );
            $img_preview = $preview_array[0]; // thumbnail or medium image to use for preview.
            ?>
            <li>
                <a href="<?php echo $img_url; ?>"><img src="<?php echo $img_preview; ?>" alt="<?php echo $img_caption; ?>" title="<?php echo $img_title; ?>"></a>
            </li>
            <?
            }
            $i++;
        }
    }
}

这是在 single.php 中的调用

<ul>
    <?php nerdy_get_images('medium','0','0'); ?>
</ul>

这完全是我想要的一个清单。

再次感谢你们!

次佳解决方案

gallery_shortcode()功能中的项目输出没有被过滤,所以没有机会改变它。标记只能使用在开始运行的 post_gallery 过滤器完全替换。与通常的过滤最终结果相比,这是一个非常规的方法,可能是出于性能原因 (生成库可能在计算上很重) 。

但它使用 wp_get_attachment_link()生成链接,其输出通过 wp_get_attachment_link 钩子与大量的细节进行过滤:

apply_filters( 'wp_get_attachment_link', "<a href='$url' title='$post_title'>$link_text</a>", $id, $size, $permalink, $icon, $text );

你需要执行一些非常复杂的作品,你想要单独的脚本来处理它吗?为什么不让 WP 用 add_image_size()处理它?

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。