1

我正在使用 Types Wordpress 插件来启用自定义字段。该插件允许您在管理页面编辑器中重新排列图像的顺序。这是我在 single.php 中的代码,用于在自定义字段中显示多个图像并具有指向自身的链接以也使用 Fancybox:

<?php   
    $mykey_values_img = get_post_custom_values('wpcf-image');
    if ($mykey_values_img != null) {
        foreach ( $mykey_values_img as $key => $value ) {
?>  
        <a href="<?php echo $value; ?>" class="fancybox" rel="gallery"><img src="<?php echo $value; ?>" /></a>

<?php
        } //foreach
    } //if
?>

问题:

现在,这段代码在我在 MAMP 上运行的本地副本上完美运行。然而,当我把它放在 iPage 上托管时,图像是乱序的。我不知道是什么导致了这种差异。当我使用 Types 中的简码而不是上面的 php 来显示图像时,它们是按顺序排列的,但我没有使用 Fancybox 的选项。我还想知道是否有更好的方法来显示来自 Wordpress 的图像,该方法将为图像插入 alt 标签。

4

2 回答 2

4

我也遇到了这个问题,您的第一个答案使我找到了更严格的解决方案。

我还使用了 types_render_field(),但如果包含“原始”参数,则可以避免字符串操作。

$images_raw = types_render_field('image', array('raw'=>'true','separator'=>';'));
$images = explode(';', $images_raw);
foreach ($images as $link) {
     echo '<a href="' . $link . '" class="fancybox" rel="gallery">' . $link . '"></a>"';
}

然后,如果你很讨厌,你可以从它的 SRC 中获取附件的 ID。使用该 ID,您可以获得有关该附件的所有信息,例如标题或诸如此类。

于 2013-10-18T20:06:39.187 回答
0

我想出了一个解决办法来让它工作。它并不理想,但它有效。

Types 插件带有自己的 php 函数来显示名为types_render_field. 它按顺序显示我的图像。为了让 fancybox 正常工作,我不得不对字符串进行一些修改。这是代码:

$images = ( types_render_field( "image", array( 'size' => 'full', 'alt' => get_the_title(), 'title' => get_the_title() ) ) );
$imgArray = explode(">", $images);

foreach ( $imgArray as $value ) {

    $pos1 = strpos($value, 'src="', 0)+5;
    $pos2 = strpos($value, '" ', $pos1);
    $link = substr($value, $pos1, $pos2 - $pos1);

    echo '<a href="'.$link.'" class="fancybox" rel="gallery">'.$value."></a>";
}
于 2013-06-02T23:33:31.950 回答