2012-06-26 1 views
3

Я настроил тип персонализированного сообщения под названием «RELEASES» - подумайте о выпуске компакт-диска.Wordpress, отображающий пользовательские типы сообщений и их поля

Этот тип сообщения имеет поля с именем 'release_artist', 'release_title', 'release_date', 'release_artwork' и 'release_tracklisting' для ввода всей соответствующей информации о музыкальном компакт-диске.

У меня возникла настоящая проблема, фактически отображающая эту информацию в моем шаблоне Wordpress. У меня действительно только удача, выводя список названий и ни одна из других данных.

Любая идея, что я положил в LOOP, чтобы отобразить всю информацию? Предпочтительно каждый в своем собственном элементе LIST, чтобы я мог стилизовать каждый отдельно?

Любые мысли очень ценятся.

ответ

4

Являются ли эти пользовательские поля? Если да, попробуйте what codex.wordpress.org. Еще лучше, попробуйте ACF plugin.

- редактировать

Если вы хотите отобразить части ваших страниц на остальных (., Например, на вашем доме), вам нужно использовать query_posts. Это довольно простая функция. Для вашего цикла, попробовать что-то вроде этого:

 <?php 
     global $wp_query; 
     query_posts(array(
      'post_type' => 'releases' 
     )); 
 while(have_posts()) : the_post(); ?> 
      <?php $key = get_post_meta($post->ID, 'Opis nazwy'); ?> 
      <li <?php post_class(); ?>><a href="<?php the_permalink(); ?>"><?php if($key) { echo $key[0]; } else { the_title(); }; ?></a></li> 
      <?php 
     endwhile; 
     wp_reset_query(); 
     ?> 

$key одно значение, здесь установлен release_artists. Это чисто для тестирования. Если это работает - не стесняйтесь определять свои собственные переменные.

+0

Да, это настраиваемые поля. У меня есть эта часть отсортирована. Я просто не могу отобразить результаты на своем сайте. – lowercase

+1

Что именно вы делаете? Вы должны иметь возможность просто «эхо» их в файлах тем. Лучший способ - создать отдельную страницу для этих типов сообщений (например, «single-релизы».php'), и там вы можете использовать 'echo get_post_meta ($ post-> ID, 'release_artist')'. –

+0

Это просто не работает. Я не могу понять, почему. Является ли «ID» в вашем примере выше динамически генерируемым? Или вы предлагаете мне указать код для каждого из них? – lowercase

2

Вы можете использовать get_post_meta, чтобы потянуть ваши поля по мере необходимости. Внутри вашего цикла, вы можете начать со следующим:

<?php 
    $release_artist = get_post_meta($post->ID, 'release_artist', true); 
    $release_title = get_post_meta($post->ID, 'release_title', true); 
?> 

<ul> 
    <li class="release_artist"> 
     <?php echo $release_artist; ?> 
    </li> 
    <li class="release_title"> 
     <?php echo $release_title; ?> 
    </li> 
</ul> 
+0

К сожалению, я не могу заставить это работать. Я думаю, что это имеет какое-то отношение к аспекту «ID». Откуда этот идентификатор? Не могли бы вы поставить этот выше код в простой цикл для меня? Я начинаю думать, что у меня это в неправильном месте в цикле (или сам цикл неверен). – lowercase

+0

Если вы предоставите мне свой текущий цикл, я могу взглянуть и посмотреть, что может быть неправильным. Если нет, у меня должно быть время, чтобы написать более подробный пример. – Ryan

+0

В случае, если мой вопрос не имеет смысла, я ищу, чтобы отобразить 6 самых последних выпусков музыки/компакт-дисков на главной странице моего сайта. Таким образом, каждый из них будет содержать имя исполнителя, название альбома, изображение обложки альбома и ссылку/купить его. Я не использовал шаблон моей домашней страницы, чтобы помещать эту информацию в и НЕ специальный шаблон типа post post. – lowercase

1

Вы должны использовать:

<?php the_field('field_name') ?> 

внутри вашего цикла. Надеюсь, поможет!

+1

Это работает только при использовании плагина ACF. – Jsalinas

0

О вопросе вашего идентификаторам:

Каждый пункт, как посты и страницы в WordPress есть «ID», но они обычно не показаны в списках них. Существует несколько плагинов, которые добавят в ваш администратор столбец «ID». Найдите Wordpress.org для «show ids» и выберите тот, который вам нравится. Установите его. Активируйте его. Вы увидите идентификаторы.

https://wordpress.org/plugins/search.php?q=show+id

1

Из большей части документации, которую я видел в Интернете, query_posts не должен быть идти работать для создания пользовательских запросов и петель. Следующий фрагмент кода может быть хорошей отправной точкой. Вы должны иметь возможность использовать это внутри или вне основного цикла ваших файлов шаблонов тем.

$args = array(
    'post_type' => 'release', //remember this is-case sensitive 
    'posts_per_page' => -1, 
); 

$releaseQuery = new WP_Query($args); 

if ($releaseQuery->have_posts()) : 
while ($releaseQuery->have_posts()) : 
$releaseQuery->the_post(); 

// Fetching the post ID for demonstration and for use later 
$c_id = get_the_ID(); 

// After running the_post(), alot of the Wordpress functions (not all) can now be used without supplying the post ID.  
echo get_the_title(); 
// You could also have used get_the_title($c_id); 

// Then: 
echo get_post_meta($c_id, 'release_title', true); 
echo get_post_meta($c_id, 'release_artist', true); 

endwhile; 
endif; 

// Return to the current page's main query 
wp_reset_query(); 

// This should now display the page's title 
the_title(); 

 Смежные вопросы

  • Нет связанных вопросов^_^