Вывод картинок из произвольных полей

Discussion in 'PHP' started by OSW, 29 Aug 2011.

  1. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Есть сайт на вордпрессе. Через custom fields вставляются картинки.
    На странице с записью хочу вывести все картинки, что есть, для этого использую что-то вроде:

    PHP:
    <?php  $FileUpload get_post_meta($post->ID'File Upload'true); ?>   
    <?php $FileUpload2 get_post_meta($post->ID'File Upload2'true); ?>   
    <?php $FileUpload3 get_post_meta($post->ID'File Upload3'true); ?>   
    <?php $FileUpload4 get_post_meta($post->ID'File Upload4'true); ?>  
    <?php $FileUpload5 get_post_meta($post->ID'File Upload5'true); ?>      
      
    <?php if($FileUpload != '')   {  echo wp_get_attachment_link($FileUpload'thumbnail'falsetruenull);    
    elseif(
    $FileUpload2 != '') {  echo wp_get_attachment_link($FileUpload2'thumbnail'falsetruenull);    
    elseif(
    $FileUpload3 != '') {  echo wp_get_attachment_link($FileUpload3'thumbnail'falsetruenull);    
    elseif(
    $FileUpload4 != '') {  echo wp_get_attachment_link($FileUpload4'thumbnail'falsetruenull);    
    elseif(
    $FileUpload5 != '')   echo wp_get_attachment_link($FileUpload5'thumbnail'falsetruenull);     }}}}?> 

    Суть: нужно проверять на существование все 5 переменных и выводить столько картинок, сколько существует переменных.
    Этот код выводит только первую. Подскажите, как реализовать?
     
  2. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    PHP:
    <?php
    $FileUpload 
    = array();
    for (
    $i 0$i 5$i++) {
        
    $FileData get_post_meta($post->ID"File Upload$i"true);
        if (
    $FileData) {
            
    //для того, чтобы можно было в дальнейшем использовать картинки, то суём их в массив.
            
    push($FileUploadget_post_meta$FileData);
            
    //если закоментить верхнюю строку и первую, то вместо $FileUpload[$i], можно юзать $FileData.
            
    echo wp_get_attachment_link($FileUpload[$i], 'thumbnail'falsetruenull);
        }
    }
    ?>
    update
    то что у тя с if

    если первая картинка сущесвует, то вывести линк на неё.
    иначе если вторая картинка сущесвует, то вывести линк на неё.
    У тебя первое условие срабатывает и на этом всё останавливается.

    Update.
    такие вопросы задавать лучше в теме для новичков.
     
    #2 Melfis, 29 Aug 2011
    Last edited: 29 Aug 2011
    1 person likes this.
  3. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    По if понял, спасибо.

    По коду, что ты привел - вложения не отображаются.

    По тому, где размещать вопрос: в теме для новичков отписывался, ответов не было (
     
  4. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    сори.
    push($FileUpload, get_post_meta, $FileData);
    замени на
    push($FileUpload, $FileData);
     
  5. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Исправил, поправил имена произвольных полей, чтобы начинались с 1, заменил условия цикла на for ($i = 1; $i <= 5; $i++) - все равно, $FileData пустая.
     
  6. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Ну значит я хреново знаю пхп и замени
    $FileData = get_post_meta($post->ID, "File Upload" . $i, true);
     
  7. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Не помогло( Результат тот же.
     
  8. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Ну блин, включи вывод ошибок то в файле.
     
  9. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Notice: registration.php is deprecated since version 3.1 with no alternative available. This file no longer needs to be included. in /home/beast705/public_html/work/wp-includes/functions.php on line 3424

    Notice: get_settings is deprecated since version 2.1! Use get_option() instead. in /home/beast705/public_html/work/wp-includes/functions.php on line 3382

    Notice: get_settings is deprecated since version 2.1! Use get_option() instead. in /home/beast705/public_html/work/wp-includes/functions.php on line 3382

    Notice: get_settings is deprecated since version 2.1! Use get_option() instead. in /home/beast705/public_html/work/wp-includes/functions.php on line 3382

    Notice: get_settings is deprecated since version 2.1! Use get_option() instead. in /home/beast705/public_html/work/wp-includes/functions.php on line 3382

    Notice: load_plugin_textdomain вызвал аргумент, который не поддерживается с версии 2.7 и не имеет доступных вариантов. in /home/beast705/public_html/work/wp-includes/functions.php on line 3468

    Notice: get_settings не рекомендуется начиная с версии 2.1! Используйте вместо этого get_option(). in /home/beast705/public_html/work/wp-includes/functions.php on line 3382
     
  10. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Таки все оказалось просто:
    PHP:
    <?php $FileUpload1 get_post_meta($post->ID'File Upload1'true); ?>
    <?php $FileUpload2 
    get_post_meta($post->ID'File Upload2'true); ?>
    <?php $FileUpload3 
    get_post_meta($post->ID'File Upload3'true); ?>
    <?php $FileUpload4 
    get_post_meta($post->ID'File Upload4'true); ?>
    <?php $FileUpload5 
    get_post_meta($post->ID'File Upload5'true); ?>

    <?php 
    if(is_numeric($FileUpload1)) { echo wp_get_attachment_link($FileUpload1'thumbnail'falsetruenull);} 
     if(
    is_numeric($FileUpload2)) { echo wp_get_attachment_link($FileUpload2'thumbnail'falsetruenull);} 
     if(
    is_numeric($FileUpload3)) { echo wp_get_attachment_link($FileUpload3'thumbnail'falsetruenull);} 
     if(
    is_numeric($FileUpload4)) { echo wp_get_attachment_link($FileUpload4'thumbnail'falsetruenull);} 
     if(
    is_numeric($FileUpload5)) { echo wp_get_attachment_link($FileUpload5'thumbnail'falsetruenull);}?>
     
  11. Maksim_K

    Maksim_K New Member

    Joined:
    7 Aug 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    советую поставить плагин Advanced Custom Fields для таких нужд и там через одну функцию выводить картинки. Если будут сложности могу подкрутить, вот связь skype: korostelev maksim