Есть сайт на вордпрессе. Через 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', false, true, null); elseif($FileUpload2 != '') { echo wp_get_attachment_link($FileUpload2, 'thumbnail', false, true, null); elseif($FileUpload3 != '') { echo wp_get_attachment_link($FileUpload3, 'thumbnail', false, true, null); elseif($FileUpload4 != '') { echo wp_get_attachment_link($FileUpload4, 'thumbnail', false, true, null); elseif($FileUpload5 != '') echo wp_get_attachment_link($FileUpload5, 'thumbnail', false, true, null); }}}}?> Суть: нужно проверять на существование все 5 переменных и выводить столько картинок, сколько существует переменных. Этот код выводит только первую. Подскажите, как реализовать?
PHP: <?php $FileUpload = array(); for ($i = 0; $i < 5; $i++) { $FileData = get_post_meta($post->ID, "File Upload$i", true); if ($FileData) { //для того, чтобы можно было в дальнейшем использовать картинки, то суём их в массив. push($FileUpload, get_post_meta, $FileData); //если закоментить верхнюю строку и первую, то вместо $FileUpload[$i], можно юзать $FileData. echo wp_get_attachment_link($FileUpload[$i], 'thumbnail', false, true, null); } } ?> update то что у тя с if если первая картинка сущесвует, то вывести линк на неё. иначе если вторая картинка сущесвует, то вывести линк на неё. У тебя первое условие срабатывает и на этом всё останавливается. Update. такие вопросы задавать лучше в теме для новичков.
По if понял, спасибо. По коду, что ты привел - вложения не отображаются. По тому, где размещать вопрос: в теме для новичков отписывался, ответов не было (
Исправил, поправил имена произвольных полей, чтобы начинались с 1, заменил условия цикла на for ($i = 1; $i <= 5; $i++) - все равно, $FileData пустая.
Ну значит я хреново знаю пхп и замени $FileData = get_post_meta($post->ID, "File Upload" . $i, true);
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
Таки все оказалось просто: 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', false, true, null);} if(is_numeric($FileUpload2)) { echo wp_get_attachment_link($FileUpload2, 'thumbnail', false, true, null);} if(is_numeric($FileUpload3)) { echo wp_get_attachment_link($FileUpload3, 'thumbnail', false, true, null);} if(is_numeric($FileUpload4)) { echo wp_get_attachment_link($FileUpload4, 'thumbnail', false, true, null);} if(is_numeric($FileUpload5)) { echo wp_get_attachment_link($FileUpload5, 'thumbnail', false, true, null);}?>
советую поставить плагин Advanced Custom Fields для таких нужд и там через одну функцию выводить картинки. Если будут сложности могу подкрутить, вот связь skype: korostelev maksim