修改WordPress循环以输出包含在图像标记中的缩略图的post中的所有图像?
这个问题需要一些php,一些jquery和一些通用的编程逻辑。
在此前的问题慷慨帮助下,我构建了一个脚本,用于扫描WordPresspost中的图像附件,如果发现任何内容,则将这些脚本移动到列表中新创建的
- 列表中的项目。 这样做的原因是使图像可用于我正在硬编码到主题中的滑块(RoyalSlider)(出于几个原因我不想使用WP插件版本)。
你可以看到我在这里工作的网站。
相同的脚本正在提供站点的几个部分 – 顶部两个部分中的滑块和上一部分中的客户端徽标。
我现在需要将缩略图导航添加到第二部分的滑块。 正如您所看到的,如果您检查代码,我已经修改了WP循环(在此部分的页面模板中),以便它返回附加到post的任何图像的缩略图(以及显然图像本身)。
这是我用来执行此操作的代码:
ID ); foreach( $images as $imageID => $imagePost ) echo wp_get_attachment_image($imageID, 'thumbnail', false); ?>
问题是,这当前正在与我的jQuery脚本交互,以便这些缩略图移动到列表项并作为图像包含在滑块中! 相反,目标是将每个缩略图包含在其各自图像的标记内,如下所示:
所以这是问题的逻辑部分:让这些缩略图像缩略图而不是图像一样的最佳方法是什么? 我怀疑我需要以某种方式在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 ''; }