WordPress、あなたは時々私を怒らせます!
ここ数時間私がやろうとしてきたことは、サイドバーの下にアーカイブをカスタムの日付形式で表示できるようにすることです (設定のグローバル オプションを変更せずに)。 the_date(); を使用するのと同じくらい簡単です。たとえば、2013 年 1 月を代わりに 1 月 13 日にしたいのですが、1 つの列に 1 年、もう 1 つの列に 1 年を置きます。
このコードを適応させることで、カスタムの日付フォーマットをうまく行うことができました: http://www.wpbeginner.com/wp-themes/how-to-customize-the-display-of-wordpress-archives-in-your-サイドバー/これに:
function sidebar_archive_list($arclistno = "24") {
global $wpdb;
$limit = 0;
$year_prev = null;
$months = $wpdb->get_results("SELECT DISTINCT MONTH( post_date ) AS month , YEAR( post_date ) AS year, COUNT( id ) as post_count FROM $wpdb->posts WHERE post_status = 'publish' and post_date <= now( ) and post_type = 'post' GROUP BY month , year ORDER BY post_date DESC");
foreach($months as $month) :
$year_current = $month->year;
if ($year_current != $year_prev){
if ($year_prev != null){ }
}
?>
<a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>" title="<?php echo date("F Y", mktime(0, 0, 0, $month->month, 1, $month->year)); ?>"><?php echo date("M y", mktime(0,0,0,$month->month,1,$month->year)); ?></a>
<?php
$year_prev = $year_current;
if(++$limit >= $arclistno) { break; }
endforeach;
}
それは問題なく機能しました。
この関数から返されたコンテンツを 2 つの個別の列 div に分割しようとしたときに問題が発生しました。wp_get_archives('echo=0'); から取得できるように、関数を配列にする必要があると思います。(およびいくつかの余分なコード) しかし、私の PHP のスキルは優れているとは言えず、同じ種類のものを再作成する方法がよくわかりません。私はそれが次のように見えるべきだと思います:
array(3) { [0]=> string(86) "January 2013"
[1]=> string(90) "September 2012"
[2]=> string(82) "March 2012"
}
var_dumped の場合。また、何らかの理由でアンカー リンクも日付を囲みますが、印刷するのではなく、エコーすることを覚えておく価値があります。
コンテンツ分割に使用しているコードは次のとおりです。
<?php
$links = print(sidebar_archive_list());
$archive_n = count($links);
for ($i=0;$i<$archive_n;$i++):
if ($i<$archive_n/2):
$archive_left = $archive_left.'<li>'.$links[$i].'</li>';
elseif ($i>=$archive_n/2):
$archive_right = $archive_right.'<li>'.$links[$i].'</li>';
endif;
endfor;
?>
<div class="group">
<ul class="sb_double_column_list alignleft">
<?php echo $archive_left;?>
</ul>
<ul class="sb_double_column_list alignright">
<?php echo $archive_right;?>
</ul>
</div>
どんな助けやアドバイスも心から感謝します。私はこれで本当にマンネリです!