干草,我正在使用WordPress 3.0和两个新功能的WordPress玩耍, 自定义帖子类型菜单编辑器.

我首先创建了一种名为“products“正如您猜到的那样,此列出了产品。

我正在使用BOG标准模板,并且正在创建一个新菜单来替换顶级NAV。据我所知,我只能添加确定 “产品” 对此,我不能添加 “档案” 产品。我要做的是添加到菜单的链接以转到列出所有产品的页面。

知道该怎么做吗?

有帮助吗?

解决方案

@dotty 正如您可以通过此轨道票看到的那样: 自定义帖子类型应该有索引页 因此,显然,WordPress核心尚未解决需求。

@john p bloch和@chris_o都为您提供了很好的选择;我要给你第三。

一个 “产品”

首先创建一个 对于您的自定义帖子类型并致电 “产品”. 。这将为它提供以下URL:

http://example.php/products/

一个 “产品清单” 短代码

下一步创建一个 短代码 您可以嵌入 “产品” 页。在我的示例中,我称之为 [product-list]. 。这是使用它的外观的屏幕截图:

A Product's Page that uses a Shortcode to display a list of Products in WordPress
(资源: mikeschinkel.com)

请注意,这样的短代码将是添加许多可选功能并使其能够为许多不同的帖子类型工作的绝佳候选人,但是为了清楚起见,我几乎对所有内容进行了硬编码。您当然可以将其用作您自己的短码的起点:

<?php
add_shortcode('product-list', 'my_product_list');
function my_product_list($args) {
  $save_post = $GLOBALS['post'];  // Save state so you can restore later
  $post_type = 'product';
  $template_file = get_stylesheet_directory() . "/post-{$post_type}.php";
  if (!file_exists($template_file)) {
    return "<p>Missing template [$template_file].</p>";
  } else {
    global $post;
    $q = new WP_Query("showposts=10&post_type={$post_type}&orderby=title&order=ASC");
    $rows = array();
    $rows[] = '<div class="post-list ' . $post_type . '-post-list">';
    global $post_list_data;
    $post_list_data = array();
    $post_list_data['post_count'] = $post_count = count($q->posts);
    foreach ($q->posts as $post) {
      $q->the_post();
      ob_start();
      include($template_file);
      $rows[] = ob_get_clean();
    }
    $rows[] = '</div>';
    $GLOBALS['post'] = $save_post;
    return implode("\n",$rows);
  }
}

一个 post-product.php 主题模板文件

接下来,您需要创建一个仅显示一个产品的主题模板文件。实现短代码名称模板文件的功能 post-product.php 这是一个很好的起点:

<?php
/**
 * post-product.php - File to display only one product within a list of products.
 */
?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
  <h2 class="entry-title"><?php the_title(); ?></h2>
  <div class="entry-content">
    <?php the_content(); ?>
  </div>
</div>

添加菜单选项

最后您需要添加菜单选项。从此屏幕截图可以看到,这非常简单(以下是您以前对WordPress 3.0菜单没有做任何事情,并且您正在使用支持WordPress 3.0菜单(例如二十十个)的主题):

  1. 在管理菜单中选择菜单选项。
  2. 点击 "+" 添加新菜单。
  3. 输入菜单名称,无论您喜欢什么。
  4. 点击 “创建菜单” 按钮(屏幕截图显示 “保存菜单” 但这将是 “创建菜单” 添加时。)
  5. 选择新菜单作为您的 “主要导航”.
  6. 选择您的 “产品“ 页。
  7. 点击 “添加到菜单”
  8. 点击 “保存菜单”

Adding a Products Page Menu Option to a WordPress Site
(资源: mikeschinkel.com)

最后,输出

这是基本产品列表的样子:

A List of Products using a Custom Post Type in WordPress
(资源: mikeschinkel.com)

其他提示

这不是WordPress的本地支持。但是,您可以将其添加到您的functions.php文件中,并且它将起作用:

function give_me_a_list_of_products(){
  add_rewrite_rule( 'products/?$', 'index.php?post_type=products', 'top' );
}

add_action( 'init', 'give_me_a_list_of_products' );

这将为您提供example.com/products/作为产品列表。从那里,您只需在菜单中添加自定义链接即可。

但是,如果您想用供稿进行真正的归档(按月,年份等),则需要更详细的代码。如果您的“产品”是非等级帖子类型(似乎应该是),则可以使用我的插件:

http://www.wordpress.org/extend/plugins/custom-post-permalinks/

这为您提供了额外的字段来自定义永久链接(就像您在博客文章中一样),并将使您能够根据类别,作者,月份,年份,邮政类型等自定义永久链接。

据我所知,我只能向其中添加某些“产品”,我不能添加产品的“存档”。我要做的是添加到菜单的链接以转到列出所有产品的页面。知道该怎么做吗?

您需要为“产品”帖子类型分类分类学,然后将分类学术语添加到您的一个自定义菜单中,然后将用户带入所使用的分类学下的所有产品的存档页面。

例子我有一种名为“工作”的自定义帖子类型,标有“职位”的分类法alt text

如果我想要所有具有“当前开口”分类学术语的作业,我会选择它并将其添加到菜单中。alt text

如果您需要在存档页面上拥有所有“产品”帖子类型,则可以为所有这些分类分配给所有这些帖子类型,以便所有这些帖子都可以在存档页面上列出。

我认为,通过自定义帖子键入帖子类型存档并在此存档中移动存档帖子是一个更好的解决方案。还将当前的post_type添加到此新post_type的postema中,以进行撤消。我已经为此编写了一个插件,当前您可以在没有样式表,图像和语言文件的情况下看到此插件 gist.github/978690.

许可以下: CC-BY-SA归因
scroll top