我想要显示我的自定义日期存档到日期.php,但不知道如何显示

时间:2016-11-17 作者:Joffrey

我有一个问题,自定义日期档案如何显示它的日期。php

这是我的自定义存档代码

 <?php
    $o_query_result = new WP_Query( array( \'posts_per_page\' => -1, \'post_status\' => \'publish\', \'post_type\' => $post_type ) );
    $a_archive_post_count = array();
    $a_archive_post_url = array();
    if( isset($o_query_result->posts) && !empty($o_query_result->posts) )
    {
        foreach( $o_query_result->posts AS $o_post_details )
        {
            $datetime = new DateTime($o_post_details->post_date);
            $s_array_index = $datetime->format(\'Y\') ."年". $datetime->format(\'m\') ."月";
            if( array_key_exists($s_array_index, $a_archive_post_count) ) 
            {
                $a_archive_post_count[$s_array_index] = $a_archive_post_count[$s_array_index] + 1;
            }
            else
            {
                $a_archive_post_count[$s_array_index] = 1;  
            }
            $a_archive_post_url[$s_array_index] = \'/\' . $datetime->format(\'Y\') .\'/\'. $datetime->format(\'m\');
        }
        wp_reset_postdata();
    }
?>

<ul class="introduction__blog__list">
    <?php foreach ($a_archive_post_count as $s_archive_post_count_key => $s_archive_post_count_value): ?>
    <li class="introduction__blog__list__item--sb mt10p">
        <a class="" href="<?php echo home_url(); ?>/<?php echo $post_type; ?><?php echo $a_archive_post_url[$s_archive_post_count_key] ?>">
            <p class="introduction__blog__list__summary__date">
                <?php echo $s_archive_post_count_key . \' (\' .$s_archive_post_count_value. \')\' ?>
            </p>
        </a>
    </li>
    <?php endforeach; ?>
</ul>
它将给我一个结果:2016年年11月 (6) ->6表示自定义博客中有6篇帖子

如果用户单击上面有链接的日期(例如)http://portfolio.com/custom_blog/2016/11 , 它给了我一个错误,比如找不到页面。

是否有办法在日期中显示结果。php还是我应该为每个自定义帖子创建一个页面,比如custom\\u blog/2016/11?

我试过了http://portfolio.com/2016 -> 它显示了我输入日期的代码。php,但我不想这样做。

请告诉我如何才能得到最新的结果或输出。php或其他页面/文件。

1 个回复
SO网友:Bhaskar K C

您需要为此编写自定义重写规则。

只需将以下代码复制到函数中即可。php和刷新重写规则。

 
function xlinkerz_custom_archive_rewrite_rule( $rewrite_rules ) {

  $custom_slug = \'custom_archive\';

  $year_rule = array( $custom_slug . \'/([0-9]{4})/([0-9]{1,2})/?$\' => \'index.php?year=$matches[1]&monthnum=$matches[2]\' );

  $month_rule = array( $custom_slug . \'/([0-9]{4})/?$\' => \'index.php?year=$matches[1]\' );

 // Merging rules
 $rewrite_rules = $year_archive + $month_archive + $rewrite_rules;

 return $rewrite_rules;

}

add_filter(\'rewrite_rules_array\', \'xlinkerz_custom_archive_rewrite_rule\');
*刷新重写规则有几种方法,最简单的方法是转到管理区域并保存永久链接。请记住,不应调用flush\\u rewrite\\u rules();在定义新重写规则的函数中。

相关推荐

WPQuery Date and ACF

我正在创建一个查询,需要按ACF日期字段进行筛选。在数据库中(wp\\u post\\u meta table中)的值如下:MM/DD/YYYY我有几个房间,在date\\u available\\u from字段中的值为:2021 06月01日2021 08月21日2021 08月31日2021 09月06日2021 07月30日2021 11月31日2021 12月31日ul>然后我像这样进行查询:$args[1] = array( \'posts_per_page\' => -1