希望这有帮助,
function mat_image_credit() {
global $post;
$args = array(
\'post_type\' => \'attachment\',
\'post_parent\' => $post->ID,
\'post_mime_type\' => \'image\',
\'numberposts\' => -1,
);
$imgs = get_posts($args);
foreach ($imgs as $img) {
$field1 = slt_cf_field_value(\'flickr_credit\', \'attachment\', $img->ID);
$field2 = slt_cf_field_value(\'custom_credit\', \'attachment\', $img->ID);
if (!empty ( $field1 ) ) {
echo \'Image by \' . $field1;
} elseif ( !empty ( $field2 ) ) {
echo \'Image by \' . $field2;
};
}
}
然后在你的主题中(在循环中使用),
<?php mat_image_credit(); ?>
The
foreach
该声明假设用户可以在每篇文章中附加多个图像和信用属性,并且您希望它们以某种分组顺序打印。
另一种方法是去掉foreach语句,而是从返回的附件数组中提取第一个图像,
function mat_image_credit() {
global $post;
$args = array(
\'post_type\' => \'attachment\',
\'post_parent\' => $post->ID,
\'post_mime_type\' => \'image\',
\'numberposts\' => -1,
);
$imgs = get_posts($args);
//$imgs[0]->ID grabs first image in the array (array key begining with 0)
$field1 = slt_cf_field_value(\'flickr_credit\', \'attachment\', $imgs[0]->ID;);
$field2 = slt_cf_field_value(\'custom_credit\', \'attachment\', $imgs[0]->ID;);
if (!empty ( $field1 ) ) {
echo \'Image by \' . $field1;
} elseif ( !empty ( $field2 ) ) {
echo \'Image by \' . $field2;
};
}
然后在你的主题中[和以前一样](在循环中使用),
<?php mat_image_credit(); ?>
除此之外,您还可以扩展此功能,使其具有一定的动态性,即您可以获取第一个、第二个和第三个图像附件,并在模板的不同部分使用它们。
实例
function mat_image_credit($custom = 0) {
global $post;
$args = array( //etc... );
$imgs = get_posts($args);
$field1 = slt_cf_field_value(\'flickr_credit\', \'attachment\', $img[$custom]->ID);
$field2 = slt_cf_field_value(\'custom_credit\', \'attachment\', $img[$custom]->ID);
if (!empty ( $field1 ) ) {
echo \'Image by \' . $field1;
} elseif ( !empty ( $field2 ) ) {
echo \'Image by \' . $field2;
};
}
然后在你的主题中[和以前一样](在循环中使用),
<?php mat_image_credit(); ?> //returns first image (default $custom = 0)
<?php mat_image_credit(0); ?> //returns first image
<?php mat_image_credit(1); ?> //returns second image
<?php mat_image_credit(2); ?> //returns third image etc...
如果未指定值(整数),则默认情况下,函数将指定
0
作为键,它将检索结果数组中的第一个图像。随后,对于指定值的对象,相应的
key => value
将检索。
谁知道。。。您可能需要在模板文件中的多个位置检索多个批次的信用。这将有所帮助。