WordPress的获得职位类型归档链接

问题描述:

我想根据岗位类型类别的档案(例如:视频后型) 我试图用这个函数来得到一个样本网址: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。 –

我是找到一种方法来列出一个类别中的所有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

解决方案一:

我在这里找到了解决方案: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://*.com/questions/38741566/wordpress-get-post-type-archive-link/ 38743859#38743859 –

+0

由于我无法理解的原因,get_post_type_archive_link()不一致地返回我网站的主页。你的功能有诀窍。 – MastaBaba