サポート » 使い方全般 » 文字数を決めて本文を出力するとWP Social Bookmarking Lightが意図通りに動作し

  • 解決済 modsize

    (@modsize)


    はじめまして。
    表題の件について色々と調べてみたのですが、
    解決策がみつかりませんので質問をさせてください。

    現在、functions.php内に下記コードを追加し、

    function winexcerpt($length) {
    global $post;
    $content = mb_substr(strip_tags($post->post_content),0,$length);
    return $content;
     }

    category.phpのループ内で

    <?php echo winexcerpt(150); ?>

    と追加し、文字数を制限して出力させております。

    WP Social Bookmarking Lightについては
    位置をnoneに設定し、
    category.phpのループ内で

    <?php if(function_exists("wp_social_bookmarking_light_output_e")){wp_social_bookmarking_light_output_e();}?>

    と記述して任意の場所に出力しています。

    出力自体は問題ないのですが、各ブックマークボタンで投稿しようとすると記事のパーマリンクが表示されず、http://xxxxxx.com/カテゴリー名/ のように、カテゴリ一覧ページのリンクが反映されてしまいます。

    記事の文字数制限を外し、<?php the_content(); ?>で記事を表示させ、
    WP Social Bookmarking Lightの位置を「top」か「bottom」に設定した場合はカテゴリページに表示され、各記事のパーマリンクがブックマークボタンの投稿内容に反映されます。

    尚、個別記事のみの設定はNoに設定しており、
    WP Social Bookmarking Light内、content.phpの

    $options = wp_social_bookmarking_light_options();
        if( $options['single_page'] && !is_singular() ){
            return $content;
        }
        if( !$options['is_page'] && is_page() ){
            return $content;
        }

    部分を

    $options = wp_social_bookmarking_light_options();
        if( $options['single_page'] && !is_singular() && !is_archive() && !is_category() ){
            return $content;
        }
        if( !$options['is_page'] && is_page() ){
            return $content;
        }

    に変更する方法も試してみましたが効果無しでした。

    文字数制限された記事にブックマークボタンを付けるのもどうかと思いますが・・・
    クライアント様がどうも記事ごとにmoreタグを設定する事が億劫らしく、
    なんとか実現できればと思います。

    お手数をおかけ致しますが、お力添えいただければ大変ありがたいです。

    何卒よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • nobita

    (@nobita)

    こんにちは

    そのプラグインを使っていないのですが、

    記事の文字数制限を外し、<?php the_content(); ?>で記事を表示させ、
    …各記事のパーマリンクがブックマークボタンの投稿内容に反映されます。

    the_content()を使えば、期待通りの動作をするということですね。

    the_content()の代わりに、winexcerpt()をお使いになり、文字を制限させて表示させているということになると、それは、the_content()とは、別個のコンテンツを表示していることになります。

    現在の、カスタム関数を、add_filterを使って、the_content()で表示できるようにしてみる。という方法も試してみてはどうでしょうか?

    modsize

    (@modsize)

    nobita様

    いただいたヒントを元に、フィルターを追加する方法で試してみたところ、
    無事に表示されました!

    function winexcerpt_BM($length) {
    global $post;
    $content = mb_substr(strip_tags($post->post_content),0,$length);//$contentの文字数を制限
    // コンテンツ($content)を成形
    $content = apply_filters('the_content', $content);
    echo $content; // 成形されたコンテンツを出力
    }

    これでクライアント様にも喜んでいただけると思います!

    貴重なヒントを頂き、大変ありがとうございました。
    心より御礼申し上げます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「文字数を決めて本文を出力するとWP Social Bookmarking Lightが意図通りに動作し」には新たに返信することはできません。