2012-06-26 105 views
3

我已经设置了一个名为'RELEASES'的自定义帖子类型 - 认为音乐光盘发布。Wordpress显示自定义帖子类型及其字段

此帖子类型的字段名为'release_artist','release_title','release_date','release_artwork'和'release_tracklisting',用于输入所有相关的音乐cd信息。

我真的有麻烦在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-releases。php'),你可以使用'echo get_post_meta($ post-> ID,'release_artist')''。 –

+0

这只是不起作用。我无法弄清楚为什么。上面例子中的'ID'是动态生成的吗?还是你建议我硬编码每个人的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个最新的音乐/光盘版本。所以每一个都会包含艺术家姓名,专辑标题,专辑封面图片和链接/购买按钮。我没有使用我的主页模板来放入这些信息,而不是一个自定义的帖子类型特定的模板。 – lowercase

1

你应该使用:

<?php the_field('field_name') ?> 

你的循环中。希望能帮助到你!

+1

只有在使用ACF插件时才有效。 – Jsalinas

0

关于您的ID的问题:

每个项目,如职位和WordPress的网页上有一个“身份证”,但他们一般都不会在他们的名单中。有许多插件会在您的管理员中添加“ID”列。搜索Wordpress.org中的“show id”并选择一个你喜欢的。安装它。激活它。你会看到ID。

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(); 
相关问题