2

我想根據崗位類型類別的檔案(例如:視頻後型) 我試圖用這個函數來得到一個樣本網址:get_post_type_archive_linkWordPress的獲得職位類型歸檔鏈接

但我不能't得到的鏈接,我得到虛假的返回 我怎樣才能得到一些示例鏈接指定的職位檔案在類別中?

您能否告訴我一個類別的自定義帖子類型的示例鏈接?

我把這個線主題的index.php文件:

var_dump(get_post_type_archive_link('video')); 

創建了一個視頻後期型,但沒有顯示該值!只是假

非常感謝您

+0

請出示你的代碼? –

+0

我把這個放在我的主題索引上,嘗試瀏覽很多可能會返回的帖子和頁面,但只是false:var_dump(get_post_type_archive_link('video')); –

+0

如果post_type不存在或post_type沒有存檔,它將返回false。 –

回答

0

我是找到一種方法來列出一個類別中的所有POST格式,郵政型別的東西

核心WordPress的崗位類型有:

  1. 郵政(帖子類型:「後「)
  2. (帖子類型: '頁')
  3. 附件(帖子類型: '附件')
  4. 修訂(帖子類型: '版本')
  5. 導航菜單(帖子類型: 'nav_menu_item')

WordPress的帖子格式:

  1. 擱置 - 通常沒有標題的樣式。類似於Facebook的筆記更新。
  2. gallery - 一個圖像庫。帖子可能會包含一個圖庫簡碼,並會有圖像附件。
  3. 鏈接 - 指向其他網站的鏈接。主題可能希望將帖子內容中的第一個標籤用作該帖子的外部鏈接。另一種方法可能是如果帖子只包含一個URL,那麼這將是URL,標題(post_title)將是附加到它的錨點的名稱。
  4. 圖片 - 一張圖片。帖子中的第一個標籤可以被認爲是圖片。或者,如果帖子只包含一個URL,那將是圖片URL,並且帖子的標題(post_title)將是圖片的標題屬性。
  5. 報價 - 報價。可能會包含一個包含引用內容的blockquote。或者,引用可能只是內容,其中源/作者是標題。
  6. 狀態 - 短狀態更新,類似於Twitter狀態更新。
  7. 視頻 - 一個視頻或者視頻的播放列表。在帖子內容中嵌入的第一個標籤或對象可以被視爲視頻。或者,如果該帖子僅包含一個網址,那將是視頻網址。如果在博客上啓用了視頻支持(如通過插件),還可能包含該視頻作爲該帖子的附件。
  8. 音頻 - 音頻文件或播放列表。可以用於播客。
  9. 聊天 - 交談記錄,像這樣:

要列出我們可以用這樣的一個帖子格式的檔案: http://sitename.com/type/image

2

解決方案一:

我在這裏找到了解決方案:http://gabrieleromanato.name/wordpress-fix-the-404-error-on-custom-post-types/

這裏就是你需要做的就是它的工作(從上面的網站引用)的內容:

進入設置→永久鏈接,改變當前的結構:
/%類別%/%postname%保存更改。恢復您的原始永久鏈接 設置。保存更改。

二解決方案:

原來存在的WordPress 3.1,你想要做什麼的函數,它被命名爲get_post_type_archive_link();這裏是你怎麼稱呼它(假設命名爲「產品」自定義後類型):

<a href="<?php echo get_post_type_archive_link('product'); ?>">Products</a> 

下面是我以前的答案之前,我發現的WordPress的確有內置的這種使用情況的功能。

此前答:

除非我忽視爲WordPress 3.1的核心源代碼,我認爲你正在尋找像get_archive_link()函數,你可以這樣調用的東西(假設命名的自定義職位類型「產品「):

<a href="<?php echo get_archive_link('product'); ?>">Products</a> 

而這裏的源代碼,你可以放入你的主題function.php文件或一個插件,你可能會寫一個PHP文件:

if (!function_exists('get_archive_link')) { 
    function get_archive_link($post_type) { 
    global $wp_post_types; 
    $archive_link = false; 
    if (isset($wp_post_types[$post_type])) { 
     $wp_post_type = $wp_post_types[$post_type]; 
     if ($wp_post_type->publicly_queryable) 
     if ($wp_post_type->has_archive && $wp_post_type->has_archive!==true) 
      $slug = $wp_post_type->has_archive; 
     else if (isset($wp_post_type->rewrite['slug'])) 
      $slug = $wp_post_type->rewrite['slug']; 
     else 
      $slug = $post_type; 
     $archive_link = get_option('siteurl') . "/{$slug}/"; 
    } 
    return apply_filters('archive_link', $archive_link, $post_type); 
    } 
} 

雖然我還沒有100%確定這個邏輯的順序在所有使用情況下一般都是正確的,但是WordPress可能會看到,儘管它可能適用於任何特定站點。

這也是一個偉大的事情,建議通過trac添加到WordPress,我認爲我會在今晚晚些時候做。

+0

我跟着你的解決方案,但不成功, 我也使用過該功能,但它返回false –

+0

嘿,我發現問題和解決方案,看看這裏:http://stackoverflow.com/questions/38741566/wordpress-get-post-type-archive-link/ 38743859#38743859 –

+0

由於我無法理解的原因,get_post_type_archive_link()不一致地返回我網站的主頁。你的功能有訣竅。 – MastaBaba

相關問題