修改WordPress循环以输出包含在图像标记中的缩略图的post中的所有图像?

这个问题需要一些php,一些jquery和一些通用的编程逻辑。

在此前的问题慷慨帮助下,我构建了一个脚本,用于扫描WordPresspost中的图像附件,如果发现任何内容,则将这些脚本移动到列表中新创建的

    列表中的项目。 这样做的原因是使图像可用于我正在硬编码到主题中的滑块(RoyalSlider)(出于几个原因我不想使用WP插件版本)。

    你可以看到我在这里工作的网站。

    相同的脚本正在提供站点的几个部分 – 顶部两个部分中的滑块和上一部分中的客户端徽标。

    我现在需要将缩略图导航添加到第二部分的滑块。 正如您所看到的,如果您检查代码,我已经修改了WP循环(在此部分的页面模板中),以便它返回附加到post的任何图像的缩略图(以及显然图像本身)。

    这是我用来执行此操作的代码:

     ID ); foreach( $images as $imageID => $imagePost ) echo wp_get_attachment_image($imageID, 'thumbnail', false); ?> 

    问题是,这当前正在与我的jQuery脚本交互,以便这些缩略图移动到列表项并作为图像包含在滑块中! 相反,目标是将每个缩略图包含在其各自图像的标记内,如下所示:

      image description 

    所以这是问题的逻辑部分:让这些缩略图像缩略图而不是图像一样的最佳方法是什么? 我怀疑我需要以某种方式在WP页面模板循环中对它们进行标记,然后才能回复post,以便其他脚本不会接收它们? 即可能将它们作为一系列变量传递,然后使用我的脚本检查这些变量,如果找到它们,则按顺序将它们分配给图像,从头到尾? 这可能吗? 还是有更好的方法来解决这个问题? 我可以直接从WP循环输出所需代码片段中的图像和缩略图吗?

    我几乎不了解如何编写超出基本包含的PHP,所以无法真正尝试这一点。

    对此的任何帮助都非常感激 – 我理解这个问题是一个很高的要求,因为它需要在几个方面的专业知识,并且非常具体,但我认为它可以帮助处于类似情况的其他人,我当然会从知道如何学到很多东西接近/完成这个!

    我不知道我是否做对了。 我知道你不希望缩略图与你的jQuery相匹配。

    您只需修改jquery代码的匹配元素即可解决此问题。 它不是最好的解决方案,但基于您所做的更简单。

    在缩略图中添加一个类:

     echo wp_get_attachment_image($imageID, 'thumbnail', false); 

     echo wp_get_attachment_image($imageID, 'thumbnail', false, array('class' => 'thumbsimg')); 

    参考: http : //codex.wordpress.org/Function_Reference/wp_get_attachment_image

    并更改您的jQuery代码:

     var matchesEl = "img, iframe" 

     var matchesEl = "img:not(.thumbsimg), iframe" 

    代替

    echo wp_get_attachment_image($imageID, 'thumbnail', false);

    ^这将返回HTML img元素。

    使用

     wp_get_attachment_image_src( $imageID, $size, $icon ); 

    ^这将返回一个包含图像的Url,Width和Height的Array。

    在你的情况下的例子:

     $images =& get_children( array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'post_parent' => $post->ID, 'posts_per_page' => -1 ) ); foreach ( (array) $images as $imageID => $imagePost ) { // Getting the full image size and thumbnail $thumbnail = wp_get_attachment_image_src( $imageID, 'thumbnail'); $full = wp_get_attachment_image_src( $imageID, 'full'); echo ''. $imagePost-/>post_content .''; }