準備作業#
WordPress がインストールされ、適切なテーマが有効になっていることを確認してください:私のテーマを例にすると、ほとんどの WordPress テーマに適しています。
Memos の RSS 購読アドレスを取得します:例えば、私のリンクは https://memos.duanxiansen.com/u/1/rss.xml ですが、あなたの Memos の実際の RSS リンクに置き換えてください。
関数を作成して Memos の最新動向を取得する#
RSS リンクからデータを取得し、最新の動向を解析するために関数を作成する必要があります。
まず、WordPress テーマディレクトリ内の functions.php ファイルを開き、以下のコードを追加します:
// Memosの最新の動向を取得して表示
function display_latest_memo() {
// wp_remote_getを使用してRSSデータを取得
$response = wp_remote_get('https://memos.duanxiansen.com/u/1/rss.xml'); // あなたのMemos RSS URLに置き換えてください
if (is_wp_error($response)) {
return 'Memosデータを取得できません';
}
// 応答の本文内容を取得
$body = wp_remote_retrieve_body($response);
// RSSデータをXMLとして解析
$data = simplexml_load_string($body);
// 返されたデータが空でないか確認
if (empty($data) || !isset($data->channel->item[0])) {
return '最新のMemos動向が見つかりませんでした';
}
// 最新の動向を取得
$latest_memo = $data->channel->item[0];
// RSSの時間をWordPressのタイムゾーン時間に変換
$rss_date = (string)$latest_memo->pubDate; // RSSの公開時間を取得
// DateTimeオブジェクトを作成し、RSSの時間を設定
$date = new DateTime($rss_date);
// 時間をWordPressのタイムゾーンに変換
$date->setTimezone(new DateTimeZone(get_option('timezone_string')));
// 時間をY-m-d H:i:s形式にフォーマット
$formatted_date = $date->format('Y-m-d H:i:s');
// 説明内容を取得(通常は動向の主要内容)
$content = (string)$latest_memo->description;
// 文字数を制限(例えば、最大300文字を表示)
$excerpt = mb_substr($content, 0, 300);
if (mb_strlen($content) > 300) {
$excerpt .= '... <a href="' . esc_url($latest_memo->link) . '" target="_blank">続きを読む</a>'; // 原文へのリンク
} else {
$excerpt .= ' <a href="' . esc_url($latest_memo->link) . '" target="_blank">原文を見る</a>'; // 文字数が短い場合は「原文を見る」を表示
}
// 最新の動向の内容、時間、リンクを出力
$output = '<div class="latest-memo memos-center">';
$output .= '<h3>最新の動向:</h3>';
$output .= '<p>' . $excerpt . '</p>';
$output .= '<p>時間:' . esc_html($formatted_date) . '</p>';
$output .= '</div>';
return $output;
}
// Memosの最新動向を表示するショートコードを作成
add_shortcode('latest_memo', 'display_latest_memo');
ホームページに最新動向を表示#
次に、Memos の最新動向をホームページの記事の最上部にのみ表示させます。そのためには、header.php または index.php ファイルを修正し、ホームページの条件下で定義したショートコードを呼び出す必要があります。
- テーマディレクトリ内の header.php ファイルを開き、適切な位置(例えば、ヘッダーテンプレート部分)に以下のコードを挿入します:
<!-- ホームページに最新のMemos動向を表示 -->
<?php if ( is_home() || is_front_page() ) : ?>
<div class="memos-latest">
<?php echo do_shortcode('[latest_memo]'); ?>
</div>
<?php endif; ?>
- is_home () と is_front_page ():この 2 つの関数は、ホームページにのみ動向を表示し、他のページには表示しないことを保証します。is_home () はブログ記事リストページを判断するために使用され、is_front_page () はカスタムのフロントページを判断するために使用されます。
スタイル調整(中央表示)#
以下の CSS コードをあなたのテーマの style.css ファイルに追加します:
.memos-latest {
text-align: center; /* 内容を水平に中央揃え */
margin: 20px auto; /* 上下の外側の余白を設定し、コンテナを中央に配置 */
padding: 10px;
background-color: #f5f5f5; /* 背景色 */
max-width: 600px; /* コンテナの最大幅を設定 */
border-radius: 10px; /* 角を丸める効果 */
}
.memos-latest h3 {
font-size: 1.5em;
}
.memos-latest p {
font-size: 1.2em;
}
.memos-latest a {
text-decoration: none;
color: #0073aa; /* リンクの色 */
}
結尾#
これで完了です。不完全なのは直接コメントできないことですので、memos ページに入って続きを完成させてください。