• 解決済 thirdeyeblind

    (@thirdeyeblind)


    現在アンテナサイトを作成しているんですが、全文配信の
    RSSを抜粋に変更するやり方が分からず悩んでいます

    いろいろ調べてみますと「http://pecoegg.com/website-65.html」
    こちらのサイトのコメント欄に「本文全てを一旦DBに格納し、出力する際に文字制限をかけて表示させています。」という記述がありました

    DBというものもよくわかりません
    具体的なやり方分かる方いらっしゃいますか?

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • thirdeyeblind さん

    DB(データベース)⇒ワードプレスでは標準状態ではSQLサーバ上の意味だと思います。
    データベース構造を参考頂ければ、構造が確認できます。
    実際のデータを、「PHPadmin」からダウンロードして見比べて頂くのも手かもしれません。

    ご確認ですが、管理ページ>設定>表示設定
    での変更では、足りない感じでしょうか。

    mura0403さん、別のトピックで途中まで調べたのですが
    https://ja.forums.wordpress.org/topic/159034?replies=8

    私の説明が下手でうまく伝えられなかったので、よければ参考になさってください。「本文全てを一旦DBへ格納」するのはFeedWordPressプラグインがやってくれます。つまり配信元の記事のコピーがふつうの投稿として作られます。ですから「文字制限をかけて表示」するのは投稿の本文を取得してwp_trim_wordsなどの関数で行えると思います。

    トピック投稿者 thirdeyeblind

    (@thirdeyeblind)

    gblsmさん すいません
    プラグインの話しじゃなかったので
    こちらに新たにトピックス立てさせて頂きました
    トップページについては自動で抜粋になりましたが
    記事ページに関しては本文が全文のまま表示されていて
    そこでつまずいています

    「本文全てを一旦DBへ格納」するのはFeedWordPressプラグインがやってくれます。つまり配信元の記事のコピーがふつうの投稿として作られます。」
    ここまでは分かるのですが

    「文字制限をかけて表示」するのは投稿の本文を取得してwp_trim_wordsなどの関数で行えると思います。

    関数などの話しになるとさっぱりわからなくなります・・

    トピック投稿者 thirdeyeblind

    (@thirdeyeblind)

    コードを埋め込むのは「Simplicity2」の子テーマで言えば
    「テーマのため関数」というところでいいのでしょうか?

    thirdeyeblindさん、ちょっと粗っぽいですがテーマの調べ方から順に書いてみます。

    まず個別投稿は single.php というテンプレートで表示されます(Simplicity2にあります)。
    テンプレートの中を見ると、次のような行がありました。

    while (have_posts()) : the_post(); // 繰り返し処理開始
      get_template_part('entry-body'); //本文記事の呼び出し?>
    
      <div id="under-entry-body">
        // 中略
      </div>
    <?php
    endwhile; // 繰り返し処理終了

    上記の「本文記事の呼び出し」が、投稿の本文を表示していると思われます。ここに entry-body という名前が出てきていますよね。次はそれを見ます(get_template_part に意味がありますが省略します)。

    テーマの中に entry-body.php という別のテンプレートがあり、中に次のようなコードが出てきます。

    <div id="the-content" class="entry-content">
    <?php //記事本文の表示
      the_content( get_theme_text_read_more() ); //デフォルト:続きを読む?>
    </div>

    the_content という関数を使って、投稿の本文を表示しています。the_content はふつう全文表示になります。

    そこで、the_content を別のコードに置き換えて文字数を制限してあげれば良さそうです。
    元のコード:

    <?php //記事本文の表示
      the_content( get_theme_text_read_more() ); //デフォルト:続きを読む?>

    文字数を制限するコード:

    <?php //記事本文の表示
      $content = get_the_content( get_theme_text_read_more() ); //デフォルト:続きを読む
      echo wp_trim_words( $content, 110 );  // 110は文字数
    ?>

    なお、ご存知と思いますがテンプレートを書き換える前に FTP などでバックアップをとり、万一ログインできなくなった時に元へ戻せることを確認してください。

    ひとつお伝えするのを忘れていました。Simplicity2のサイトからダウンロードした子テーマには entry-body.php というテンプレート(ファイル)が含まれていません。この場合、親テーマの entry-body.php(変更する前)をコピーして子テーマのディレクトリ内へ入れ、子テーマの方だけを書き換えます。

    トピック投稿者 thirdeyeblind

    (@thirdeyeblind)

    ご返答ありがとうございます!!

    一応作成しているサイトを貼っておきます
    「http://babymetal-channel.com/」です
    記事ページも無事抜粋になりました!!

    あと3点教えて頂きたいんですが
    記事ページにも「続きを読む」を表示してリンクを貼りたいんですが
    やり方分かりますか?

    記事ページにもサムネイルを表示出来ますか?

    記事ページを表示すると2つぐらい記事がくっついているんですが
    原因分かりますか?

    1から10まで質問ばかりですいません

    thirdeyeblindさん、すみませんがフォーラムのルールに協力をお願いします。

    ひとつのトピックに質問を追加するのでなく、新しくトピックを始めてください。タイトルから内容が離れていくと、他の人が後から読むときにわかりにくくなるからです。(元になったトピックのURLを新しいトピックに貼っておくと良いです)

    それから、このトピックは「解決済み」にセットしてください。
    ページの右サイドバーにそれ用のリンクがあるはずです。

    よろしくお願いします。

    トピック投稿者 thirdeyeblind

    (@thirdeyeblind)

    分かりました!

9件の返信を表示中 - 1 - 9件目 (全9件中)

トピック「Webサイトの本文をDBに格納する方法」には新たに返信することはできません。