0

Я использую плагины типов 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, изображения не работают. Я не знаю, что вызывает это несоответствие. Когда я использую shortcode из типов для отображения изображений вместо php выше, они в порядке, но у меня нет возможности использовать Fancybox. Мне также было интересно, есть ли лучший способ отображать изображение из Wordpress, которое будет вставлять тег alt для изображения.

ответ

3

Я просто столкнулся с этой проблемой, и ваш первый ответ привел меня к более жесткому решению.

Я также использовал types_render_field(), но если вы включите параметр «raw», вы можете избежать манипуляции с строкой.

$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. Используя этот идентификатор, вы можете получить всю необходимую информацию об этом вложении, например, подпись или еще что-то еще.

+0

Это гораздо лучшее решение! Благодаря! – Jonathon

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>"; 
} 
Смежные вопросы