如何获取WordPress分类链接列表?

时间:2015-02-01 作者:Muhammad Hassan

我正在尝试为我的WordPress博客类别创建自定义网站地图。为此,我在函数中添加了以下代码。php文件,当我保存它时,我的博客会变成白色。什么都没有出现。我通过FTP删除了这段代码,然后一切又恢复正常。

现在我想制作并使用这个代码。现在有人能帮我修复这个代码吗?

/* ------------------------------------------------------------------------- *
 *  Custom Dynamic XML Sitemap Generator For Categories
/* ------------------------------------------------------------------------- */
add_action("publish_post", "cat_create_sitemap");
add_action("publish_page", "cat_create_sitemap");
function cat_create_sitemap() {
  $categoriesForSitemap = get_categories(array(
    \'hide_empty\' => 0, 
    depth => 0, 
    \'hierarchical\' => false
  ));

  $sitemap = \'<?xml version="1.0" encoding="UTF-8"?>\';
  $sitemap .= \'<?xml-stylesheet type="text/xsl" href="sitemap-style.xsl"?>\';
  $sitemap .= \'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\';

  foreach($categoriesForSitemap as $category) {
    setup_postdata($category);
    $categorydate = explode(" ", $category->category_modified);
    $sitemap .= \'<url>\'.
      \'<loc>\'. get_permalink($category->ID) .\'</loc>\'.
      \'<priority>1</priority>\'.
      \'<lastmod>\'. $categorydate[0] .\'</lastmod>\'.
      \'<changefreq>daily</changefreq>\'.
    \'</url>\';
  }
  $sitemap .= \'</urlset>\';
  $fp = fopen(ABSPATH . "custom-cat-sitemap.xml", \'w\');
  fwrite($fp, $sitemap);
  fclose($fp);
}

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

我看到的第一个错误是语法错误:

depth => 0
应该是

"depth" => 0
第二个错误是,您使用的是类别对象,如post对象。这些线路都不起作用:

没有要设置的post数据。删除此行:

setup_postdata($category);
类别对象没有category\\u modified属性。也许你需要该类别上最后一篇发表文章的日期(这是另一个问题)???

//Not valid property
$category->category_modified;
get_permalink() 用于帖子,用于类别get_category_link() 相反此外,$category->ID不是类别对象的有效属性,请改用$category->term\\u ID:

//Incorrect
get_permalink($category->ID);

//Correct
get_category_link($category->term_id);

结束

相关推荐

Show all sub categories?

是否可以显示所有父猫的所有子/子类别?我有以下层次结构:父类别/税--子1--子2父类别/税2--子1--子2我想能够在一个模板上显示所有子类别,而不显示父类别。这可能吗?