2013-04-21 238 views
0

這個問題已經出現在過去的幾個人,但他們的問題的解決方案並沒有爲我工作,我已經嘗試了很多!自定義帖子類型的Wordpress自定義字段

在Wordpress中,我創建了3個自定義帖子類型。 1爲'視頻','新聞'和'音樂',每個這些發佈到自己的網頁。我想添加自定義字段,以便我可以爲音樂帖子創建'藝術家''發行年份''特色'和'關於專輯'。

我已經安裝了高級自定義字段,並且我可以向其中的每個添加自定義字段,因此當用戶單擊「添加新的」字段時可見。但我的問題是,當我訪問該頁面時,這些字段的輸出不會顯示在網站上。

我創建news.php,從single.php中文件music.php和videos.php下列要求:

<?php 
/** 
* Template Name: music Page 
* 
* Selectable from a dropdown menu on the edit page screen. 
*/ 

get_header(); ?> 

    <div id="primary" class="site-content"> 
     <div id="content" role="main"> 
<?php query_posts('post_type=music'); ?> 
<?php the_meta(); ?> 
      <?php while (have_posts()) : the_post(); ?> 
       <?php get_template_part('content', get_post_format()); ?> 
       <?php comments_template('', true); ?> 
      <?php endwhile; // end of the loop. ?> 

     </div><!-- #content --> 
    </div><!-- #primary --> 

<?php get_sidebar(); ?> 
<?php get_footer(); ?> 

而在functions.php中我有以下幾點:

/*---------music Custom Post Types---------------------------------*/ 

function my_custom_post_music() { 
    $labels = array(
     'name'    => _x('music', 'post type general name'), 
     'singular_name'  => _x('music', 'post type singular name'), 
     'add_new'   => _x('Add New', 'book'), 
     'add_new_item'  => __('Add New music'), 
     'edit_item'   => __('Edit music'), 
     'new_item'   => __('New music'), 
     'all_items'   => __('All music'), 
     'view_item'   => __('View music'), 
     'search_items'  => __('Search music'), 
     'not_found'   => __('No music found'), 
     'not_found_in_trash' => __('No music found in the Trash'), 
     'parent_item_colon' => '', 
     'menu_name'   => 'Music' 
    ); 
    $args = array(
     'labels'  => $labels, 
     'description' => 'Holds our music and music specific data', 
     'public'  => true, 
     'menu_position' => 15, 
     'supports'  => array('title', 'editor', 'thumbnail', 'excerpt', 'comments'), 
     'has_archive' => true, 

    ); 
    register_post_type('music', $args); 
} 
add_action('init', 'my_custom_post_music'); 



function my_taxonomies_music() { 
    $labels = array(
     'name'    => _x('music Categories', 'taxonomy general name'), 
     'singular_name'  => _x('music Category', 'taxonomy singular name'), 
     'search_items'  => __('Search music Categories'), 
     'all_items'   => __('All music Categories'), 
     'parent_item'  => __('Parent music Category'), 
     'parent_item_colon' => __('Parent music Category:'), 
     'edit_item'   => __('Edit music Category'), 
     'update_item'  => __('Update music Category'), 
     'add_new_item'  => __('Add New music Category'), 
     'new_item_name'  => __('New music Category'), 
     'menu_name'   => __('music Categories'), 
    ); 
    $args = array(
     'labels' => $labels, 
     'hierarchical' => true, 
    ); 
    register_taxonomy('music_category', 'music', $args); 
} 
add_action('init', 'my_taxonomies_music', 0); 


/*---------news Custom Post Types---------------------------------*/ 

function my_custom_post_news() { 
    $labels = array(
     'name'    => _x('news', 'post type general name'), 
     'singular_name'  => _x('news', 'post type singular name'), 
     'add_new'   => _x('Add New', 'book'), 
     'add_new_item'  => __('Add New news'), 
     'edit_item'   => __('Edit news'), 
     'new_item'   => __('New news'), 
     'all_items'   => __('All news'), 
     'view_item'   => __('View news'), 
     'search_items'  => __('Search news'), 
     'not_found'   => __('No news found'), 
     'not_found_in_trash' => __('No news found in the Trash'), 
     'parent_item_colon' => '', 
     'menu_name'   => 'News' 
    ); 
    $args = array(
     'labels'  => $labels, 
     'description' => 'Holds our news and news specific data', 
     'public'  => true, 
     'menu_position' => 10, 
     'supports'  => array('title', 'editor', 'thumbnail', 'excerpt', 'comments'), 
     'has_archive' => true, 
    ); 
    register_post_type('news', $args);  
} 
add_action('init', 'my_custom_post_news'); 

有沒有人知道我錯過了什麼工作或我需要做什麼。

任何建議非常感謝。

+0

<?php the_meta(); ?>在後循環http://codex.wordpress.org/Custom_Fields – 2013-04-21 10:33:14

+0

感謝泰米爾語 - 我已經通讀了解如何解決它,並且我添加了<?php the_meta(); ?>我的帖子循環,但我似乎仍然沒有運氣。有什麼我失蹤或可能我;把它放在錯誤的地方或什麼? – Ciaran 2013-04-21 10:58:27

+0

你修改了哪個文件 – 2013-04-21 11:06:54

回答

0

要顯示在循環自定義字段的值,你可以使用此代碼段:

<?php query_posts('post_type=music'); ?> 
    <?php while (have_posts()) : the_post(); ?> 
    <?php get_template_part('content', get_post_format()); ?> 

    <?php $what_name_you_want=get_post_meta($post->ID,'Your Custom Field Name',true); ?> 

    <?php echo $what_name_you_want; ?>// This call the value of custom field 


       <?php comments_template('', true); ?> 
      <?php endwhile; // end of the loop. ?> 

告訴我,如果它的工作原理!

+0

FYI高級自定義字段附帶它自己的函數,用於獲取自定義字段的值。您應該查看以下文檔:http://www.advancedcustomfields.com/docs/ '$ field_value = get_field('field_name');'雖然與@ 5wordpressthemes所表明的完成了相同的工作,但它很好,也很簡潔。 – bredon 2013-04-21 20:05:25

+0

謝謝Bredon我會檢查一下,因爲我遇到了幾個使用高級自定義字段的問題。例如,我不能在我的任何領域使用vimeo或bandcamp的簡碼,並且我無法弄清楚爲什麼如此希望能夠說明這一點。乾杯。 – Ciaran 2013-04-22 23:39:04

0

用ACF輸出來自ACF的自定義字段數據。

the_field('the-field-name'); 

get_field(下稱「場名」)用於條件語句前,如果(get_field(「我的場」)等,還可以使用

echo get_field('the-field-name'); 

我打印的內容會說你的Vimeo短代碼和自定義字段的問題可能與運行通過自定義字段的插件wasent有關,也可能是它只通過the_contents()檢查短代碼

0

基本上你需要兩個步驟來將自定義字段添加到自定義帖子類型:

  1. 創建持有您的自定義字段
  2. 保存您的自定義字段到數據庫 添加自定義字段名爲「功能」到一個名爲「前綴teammembers」自定義文章類型一metabox。

首先添加metabox:

function prefix_teammembers_metaboxes() { 
    global $wp_meta_boxes; 
    add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high'); 
} 
add_action('add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes'); 

如果您添加或編輯 「前綴teammembers」 的add_meta_boxes_{custom_post_type}鉤被觸發。

function prefix_teammembers_metaboxes_html() 
{ 
    global $post; 
    $custom = get_post_custom($post->ID); 
    $function = isset($custom["function"][0])?$custom["function"][0]:''; 
?> 
    <label>Function:</label><input name="function" value="<?php echo $function; ?>"> 
<?php 
} 

在第二步中,您將自定義字段設置爲數據庫。在保存save_post_{custom_post_type}掛鉤時觸發

function prefix_teammembers_save_post() 
{ 
    if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? 
    global $post; 
    update_post_meta($post->ID, "function", $_POST["function"]); 
} 

add_action('save_post_prefix-teammembers', 'prefix_teammembers_save_post'); 
相關問題