昔のブログでブログ書く民としてのブログ第9回目は、2012年11月23日の過去記事の一覧を作ろうの内容です。
この頃の身軽さというか、いろんなことに目が向いたりとか、今の自分にはもうないような、それがさみしいような、でもそれもいい。
当時のコードを見てみると
これを書いた時の自分を想像すると、WPの関数もちゃんとドキュメントを読んで書いていたのかどうかもあやしい感じでとにかく動いたl。動いたからよかった。そういう感じが残っている。wp_get_archivesというのは全記事をリスト表示してくれる関数で、phpファイルをテーマフォルダに置いて、固定ページのテンプレートとして指定する、という仕組みで、これが2012年当時のWordPressで調べたやり方だった。
WordPressの12年間
2012年から2025年のあいだに、WordPressのテーマの作り方はおおきく変わって、ブロックテーマという仕組みが導入されて、テーマをphpで書くのではなくてHTMLとJSONで書くという方向に舵を切った。てことで以前作っていた一覧の方法を使えなくなっていた。
では今どうやるのか
プラグインを使う
<?php
/*
Plugin Name: Takeken Shortcodes
*/
add_filter( 'redirect_canonical', function( $redirect_url, $requested_url ) {
if ( is_page() && ( get_query_var( 'paged' ) > 0 || get_query_var( 'page' ) > 0 ) ) {
return false;
}
return $redirect_url;
}, 10, 2 );
add_shortcode( 'archive_all', function() {
$paged = max( get_query_var( 'paged' ), get_query_var( 'page' ), 1 );
$posts = new WP_Query( array(
'posts_per_page' => 35,
'post_status' => 'publish',
'paged' => $paged,
) );
$html = '';
if ( $posts->have_posts() ) {
$html .= '<ul>';
while ( $posts->have_posts() ) {
$posts->the_post();
$html .= '<li><a href="' . esc_url( get_permalink() ) . '">'
. esc_html( get_the_title() ) . '</a></li>';
}
$html .= '</ul>';
wp_reset_postdata();
$html .= paginate_links( array(
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'current' => $paged,
'total' => $posts->max_num_pages,
) );
}
return $html;
} );
/wp-content/plugins/ に1ファイル置いて、固定ページのショートコードブロックに定義した名前を埋め込んで、あとはカスタムHTMLにリンク形式で書くと良い。
簡単なコードでデザインもここに書けるし。
フットワークの軽さは落ちたけれどそれなりに残っているものもある??サイドバーにおいたので見るべし
Related Posts
- 安心安全の自作プラグイン。と思っていたら半日落ちたのだった
- syntaxhighter evovled を使ってたところが文字化けしてたわけです
- 補足授業3. たかが140キロバイト、されど140キロバイトの話