Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 修改WordPress循环以输出帖子中的所有图像,图像标签中包含缩略图?_Php_Jquery_Wordpress_Loops_Thumbnails - Fatal编程技术网

Php 修改WordPress循环以输出帖子中的所有图像,图像标签中包含缩略图?

Php 修改WordPress循环以输出帖子中的所有图像,图像标签中包含缩略图?,php,jquery,wordpress,loops,thumbnails,Php,Jquery,Wordpress,Loops,Thumbnails,这个问题需要一些php、一些jquery和一些通用编程逻辑 在这里的慷慨帮助下,我构建了一个脚本,可以扫描WordPress文章中的图像附件,如果发现任何附件,可以将其移动到文章外部新创建的项目列表中。这样做的原因是为了使图像可用于我正在硬编码到主题中的滑块。出于几个原因,我不想使用WP插件版本 你可以看到我正在工作的网站 同一个脚本为站点的几个部分提供了信息——顶部两部分中的滑块和最后一部分中的客户端徽标 现在我需要将缩略图导航添加到第二部分的滑块中。您可以看到,如果您检查代码,我已经修改了本

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

在这里的慷慨帮助下,我构建了一个脚本,可以扫描WordPress文章中的图像附件,如果发现任何附件,可以将其移动到文章外部新创建的项目列表中。这样做的原因是为了使图像可用于我正在硬编码到主题中的滑块。出于几个原因,我不想使用WP插件版本

你可以看到我正在工作的网站

同一个脚本为站点的几个部分提供了信息——顶部两部分中的滑块和最后一部分中的客户端徽标

现在我需要将缩略图导航添加到第二部分的滑块中。您可以看到,如果您检查代码,我已经修改了本节页面模板中的WP循环,因此它将返回附加到文章的任何图像的缩略图,当然还有图像本身

这是我用来做这件事的代码:

<?php 
    $images =& get_children( 'post_type=attachment&post_mime_type=image&post_parent=' . $post->ID );
    foreach( $images as $imageID => $imagePost )
    echo wp_get_attachment_image($imageID, 'thumbnail', false);
?>
问题是,它当前正在与我的jQuery脚本交互,以便将这些缩略图移动到列表项中,并作为图像包含在滑块中!相反,目标是将每个缩略图包含在其各自图像的标记中,如下所示:

问题的逻辑部分是:让这些缩略图表现得像缩略图而不是图像的最好方法是什么?我怀疑我需要在WP页面模板循环中对它们进行标记,以防它们“echo”进入帖子,这样其他脚本就不会接收它们了?i、 e.可能会将它们作为一系列变量传递,然后使用我的脚本检查这些变量,如果找到它们,则将它们按顺序分配给图像,从早到晚?这可能吗?还是有更好的方法?我可以直接从WP循环输出所需代码段中的图像和缩略图吗

除了基本包含之外,我几乎不知道如何编写PHP,因此无法真正尝试使用它

非常感谢您的帮助-我知道这个问题要求很高,因为它需要多个领域的专业知识,而且非常具体,但我认为它可能会在类似情况下帮助其他人,我肯定会从如何处理/完成这个问题中学到很多

而不是

echo wp_get_attachment_image$imageID,“缩略图”,false

^这将返回一个HTML img元素

使用

^这将返回一个数组,其中包含图像的Url、宽度和高度

你的例子是:

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

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

您可以通过修改jquery代码中匹配的元素来解决这个问题。这不是最好的解决方案,但基于您所做的,它更简单

将类添加到缩略图:

$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 '<img class="rsImg" src="'. $full[0] .'" data-rsTmb="'. $thumbnail[0] .'" alt="'. $imagePost->post_content .'" />';

}

参考:

并更改jQuery代码:

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


你介意在这个问题上多说几句吗?我几乎不知道php——对您的解决方案的简要解释/注释将帮助我实现它。您上面的代码是否替换了我已有的代码?还是与之融合?谢谢。为您的案例添加了示例。谢谢,我可以看到这应该是如何工作的,但在我的案例中没有,而是给出了一个错误:为foreach提供的参数无效。。。我做错了什么?这是有效的,但只适用于前五张图片。。?这是因为我的jQuery脚本以某种方式也将缩略图显示为“真实”图像,因此没有缩略图的缩略图?再次编辑后,您会注意到我添加了一个额外的参数“posts_per_page”=>-1,现在它应该返回属于该页面/帖子的所有图像。至于jquery部分,您需要向我展示到目前为止您所拥有的。谢谢Leo,您还没有完全理解它。在另一篇文章中简化了这个问题,请查看上面的最新评论-看起来脚本可能导致了这种行为?
echo wp_get_attachment_image($imageID, 'thumbnail', false);
echo wp_get_attachment_image($imageID, 'thumbnail', false, array('class' => 'thumbsimg'));
var matchesEl = "img, iframe"
var matchesEl = "img:not(.thumbsimg), iframe"