如何使首页显示自定义分类页面?

时间:2013-06-28 作者:Pavel K

如果我的自定义分类术语有此URLhttp://example.com/work_type/vehicle-transporting/ 如何将其显示为主页http://example.com/ 就像可以在Setings > Reading 菜单

.htaccess 可接受解决方案,改变主题index.php 不是。

更新时间:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{REQUEST_URI} ^/work_type/vehicle-transporting/
RewriteRule ^(.*)$ / [P]
</IfModule>
# END WordPress
为什么没用?

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

我同意@KrzysiekDródż,虽然你应该能够做到这一点,但这可能是不必要的工作。

但是,这与我测试它是一样的,只需更改类别/术语名称和模板名称(中的部分get_template_part), 也许is_main_query() && $qry->is_home() 有条件的,如果您需要:

function pregp_home_cat_wpse_104619($qry) {
  if (is_main_query() && $qry->is_home()) {
    $qry->set(\'category_name\',\'aciform\');
    $qry->set(\'ignore_sticky_posts\',true);
    add_action(\'template_redirect\',\'tr_home_cat_wpse_104619\');
  }
}
add_action(\'pre_get_posts\',\'pregp_home_cat_wpse_104619\');

function tr_home_cat_wpse_104619() {
  get_template_part(\'category\',\'aciform\');
  exit;
}
我从未在生产中尝试过这样做,所以“当我测试它时”意味着我花了大约10分钟,没有看到任何明显的问题。我没有承诺。

几乎未经测试。可能是马车排空警告。不退款。

SO网友:Krzysiek Dróżdż

Solution 1.

一种解决方案是使用home.php 模板文件,或使用静态页面作为首页,然后使用front-page.php 模板文件。

您可以使用get_template_part 函数中包含分类法模板,或使用template_include 钩子重定向其中一个front-page/home 自定义分类法模板的模板。

Solution 2.

您还可以使用pre_get_posts 筛选以更改主WP查询,使其仅显示来自此自定义分类法的帖子。

SO网友:themissionmars

复制单个分类法模板代码

  • 将以下内容添加到页面顶部$post->ID=XX(XX是您的帖子的ID)
  • 在WP设置中将该模板设置为您的主页
  • 结束

    相关推荐

    Custom Post Type Templates?

    是否可以为自定义帖子类型设置模板?例如,您有一个具有4种不同布局变体的公文包页面,您希望用户能够选择此帖子/页面所需的布局?想知道你们这些好人有没有办法?谢谢:)