先日、WordPressプラグイン「bogo」を使用したWEBサイトのカスタマイズのお仕事を頂きました。
カスタマイズの要件は「bogoを使用したサイトのトップページで、日本語と英語の両ページで新着情報一覧(投稿一覧)をそれぞれ表示させたい」でした。
僕自身、bogoを操作するのははじめてでしたが、機能的にとてもわかりやすかったため思ったよりかんたんに作業を終えることができました。
このページでは、bogoを使ったサイトのトップページで、各言語それぞれのページでそれぞれの言語の投稿一覧を表示する方法を紹介します。
目次
手を入れるファイル
index.php
今回はfront-page.phpなどが使用されていなかったので、index.phpファイルのみを改修しました。
追加したコード
追加したコードは下記の通りです。
下記のコードを投稿一覧を表示させたい場所に設置します。
<ul>
<?php
$locale = get_locale();
// 英語ページの場合
if($locale == "en_US"){
echo "<h1>News</h1><hr>";
$args = array(
'posts_per_page' => 10,
'suppress_filters' => false,
'lang' => $locale
);
$posts = get_posts( $args );
foreach ( $posts as $post ): // ループの開始
setup_postdata( $post ); // 記事データの取得
?>
<li><?php the_time("Y/m/d"); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endforeach;
wp_reset_postdata();
?>
// 日本語ページの場合
}elseif($locale == "ja"){
echo "<h1>新着情報</h1><hr>";
$args = array(
'posts_per_page' => 10,
'suppress_filters' => false,
'lang' => $locale
);
$posts = get_posts( $args );
foreach ( $posts as $post ): // ループの開始
setup_postdata( $post ); // 記事データの取得
?>
<li><?php the_time("Y/m/d"); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endforeach;
wp_reset_postdata();
?>
}else{
echo "<li>No Posts. Select Other Language.</li>";
}
</ul>
指定されたlocale(js、en_USなど)を判別して、「日本語ならロケールが日本語の記事一覧を表示、英語ならロケールが英語の記事一覧を表示する」といった処理になります。
ある程度WordPressに慣れている方ならかんたんなコードだと思います。
以上、bogoを使ったサイトのトップページで、各言語それぞれのページでそれぞれの言語の投稿一覧を表示する方法になります。
コメント