banner
段先森

三无青年

己所不欲,勿施于人
telegram
twitter
follow
email

WordPress のホームページに Memos の最新動向を表示する方法

準備作業#

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 ファイルを修正し、ホームページの条件下で定義したショートコードを呼び出す必要があります。

  1. テーマディレクトリ内の header.php ファイルを開き、適切な位置(例えば、ヘッダーテンプレート部分)に以下のコードを挿入します:
<!-- ホームページに最新のMemos動向を表示 -->
<?php if ( is_home() || is_front_page() ) : ?>
    <div class="memos-latest">
        <?php echo do_shortcode('[latest_memo]'); ?>
    </div>
<?php endif; ?>
  1. 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 ページに入って続きを完成させてください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。