spot_img
HomeJoomla教程Joomla教程菜鸟教程 自定义帖子类型每年/每月存档永久链接

Joomla教程菜鸟教程 自定义帖子类型每年/每月存档永久链接

JasperAI 10000字免费额度试用

我的 WordPress 站点中有一个自定义帖子类型“新闻”。 我正在使用 Advanced Custom Fields 插件向每个帖子添加元数据。

我想创建一个新闻项目数组作为存档:

[2013]
    [January] => 5
[2012]
    [January] => 20
    [February] => 10
[2011]
    [April] => 30

我设法让这个工作使用:

    global $wpdb;
    $news = $wpdb->get_results(
        "SELECT wp_posts.post_date, COUNT(wp_posts.ID) as count
         FROM $wpdb->posts
         WHERE
         wp_posts.post_type="news" AND
         wp_posts.post_status="publish" AND
         wp_posts.post_date <= CURDATE() AND
         wp_posts.post_date >= DATE_SUB(CURDATE(), INTERVAL 3 YEAR)
         GROUP BY YEAR(wp_posts.post_date), MONTH(wp_posts.post_date)
         ORDER BY wp_posts.post_date DESC", 
         ARRAY_A);

    $archive = array();
    foreach ($news as $post):
        $year = date('Y', strtotime($post['post_date']));      
        $month = date('m', strtotime($post['post_date']));     
        $month_name = date('F', strtotime($post['post_date']));
        $post['url'] = 'NOT SURE ABOUT URL';
        $archive[$year][$month_name] = $post;
    endforeach;

我需要能够链接到特定的年份和月份 http://example.com/news/2012/http://example.com/news/2012/10/.

我尝试使用插件 Custom Post Type Archives 但是当我转到 /news/2012/ 我得到了没有应用过滤器的标准新闻列表。

这是我的自定义帖子类型代码

register_post_type('news', 
  array(    
    'label' => 'News',
    'description' => 'Latest News',
    'public' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'capability_type' => 'post',
    'hierarchical' => true,
    'rewrite' => array('slug' => '','with_front' => '1'),
    'query_var' => true,
    'has_archive' => true,
    'menu_position' => 120,
    'menu_icon' => /assets/img/icon-custom.png
  )
);

这是一个使用的例子 add_rewrite_rule 处理自定义帖子类型的年份和月份,其中 news 是鼻涕虫。 参观 Settings > Permalinks 添加后,管理页面刷新重写规则。 您也可以将其放入插件中并在插件激活时刷新重写规则。

function wpa83797_news_rewrite_rules(){

    add_rewrite_rule(
        'news/([0-9]{4})/([0-9]{1,2})/?$',
        'index.php?post_type=news&year=$matches[1]&monthnum=$matches[2]',
        'top'
    );

    add_rewrite_rule(
        'news/([0-9]{4})/?$',
        'index.php?post_type=news&year=$matches[1]',
        'top'
    );

}
add_action( 'init', 'wpa83797_news_rewrite_rules' );

5分钟生成10篇英文软文article forge软件试用
siteground guangda
WordPress花园官方账号
WordPress花园隶致力于为广大跨境电商和独立站爱好者提供优质的WordPress教程、Woocommerce教程、Facebook、Twitter、tiktok、Instagram教程和谷歌SEO教程等资料和对应的建站推广服务。关注‘哟派出海’公众号了解最新资讯。粉丝福利:Shopline免费独立站建设14天优惠 商务合作: [email protected]
RELATED ARTICLES
spot_img