我试图在wordpress中创建一个拇指旋转功能我得到了所有工作,但我堆叠在我的js文件中所需的唯一ID上。
所以这是我的php函数,但它并没有随机显示一个不同的id,它显示了所有缩略图的相同id。
function thumb_rotation(){
global $post;
$uniqueID = 'thumb_';
$characters = array_merge(range('a','z'), range('0','9'));
for ($i = 0; $i < 6; $i++) {
$rand = mt_rand(0, count($characters)-1);
$uniqueID .= $characters[$rand];
}
$images = get_post_meta( $post->ID, 'image_rotator', true );
$size = 'thumb-video';
if( $images ):
foreach( $images as $image ):
echo '<span class="mb">';
echo wp_get_attachment_image($image, $size, false, array('title' => '', 'alt' => '', 'class' => 'mvThumb', 'id' => $uniqueID));
echo '</span>';
endforeach;
endif;
}
知道我在这里做错了吗? 谢谢!
答案 0 :(得分:0)
您的ID生成器位于图像循环之外。
答案 1 :(得分:0)
看起来你已经有了一个UniqueID,你没有意识到它。
我认为至少,我对wordpress的工作量不大,而是WP功能的定义。
wp_get_attachment_image( int $attachment_id, string|array $size = 'thumbnail', bool $icon = false, string|array $attr = '' )
看起来第一个参数是数据库中的图像ID。在您的代码中,您将其作为
echo wp_get_attachment_image($image, ..)
所以,如果我对此是对的,那么$image
应该是一个整数,它应该是图像的主键,它在设计上已经是一个唯一的ID。
现在要提到的一件事是Javascript / HTML元素ID不应该以数字开头。我不确定这是否仍然是真的但是我记得那段时间以前就是这样(也许我上次检查了8年前,哈哈),所以我从不用数字开始它们。所以我建议只是为该ID添加前缀。像这样:
$imageID = "image_{$image}";
因此,如果$image
值为345,也是数据库中的Pkey,那么元素的ID将为image_345
。并且因为这是主键,所以没有其他图像具有相同的ID(除非它是相同的图像)。那就是我正在考虑一切正确的方法。正如我所说,我不会过多地研究wordpress。
我们有一些wordpress网站,但这对我们的非编程内容创建者来说更方便。然后我们的任何网站都需要在编程方面进行繁重的工作,我们只需使用wordpress模板化前端,在后端使用Wp页眉和页脚。然后通过slug从帖子中拉出我们想要的后端内容,并将其与我们的自定义CodeIgniter设置混合。因此,我们的大部分编程都是在wordpress之外完成的,但如果有意义的话仍然以wordpress为主题。
很抱歉,我缺乏wordpress能力的理由比它应该有的长一点。我们发现我们几乎不需要自定义代码,或者我们需要大量代码。在这种情况下,在WP之外做这件事要容易得多。