質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

2940閲覧

WPプラグイン「Subscribe2」の抜粋方法を変更したい

worldrun

総合スコア19

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/10/21 04:15

編集2022/01/12 10:55

WordPressの「Subscribe2」というプラグインについてです。
Subscribe2はメールを送信出来るプラグインで、購読者がメールアドレスを登録すれば、記事投稿時にメールで通知が出来たりします。

そのメールのテンプレートを編集しているのですが、抜粋機能をカスタマイズしたいです。
現状の抜粋機能は記事投稿の「more」に反応して、切り分けをするのですが、これを文字数で制限したいです。
(WPでよく使うthe_excerpt()のような制限の仕方をしたいです。)

プラグイン編集でphpファイルをいじってはいるのですが、どこをどうしていいのか全く分からず数日解決しませんでした。

うまいカスタマイズの方法があれば、教えていただきたいです。
よろしくお願いいたします。

10/23追記
現状の仕様ですが記事に「more」があったとき、それ以前の文章を抜粋したい文章と認識して、その文章だけをメールで送信出来ます。(moreタグ以前の文字数制限は標準で55文字のようです。)
これを、moreタグ無しの文字数制限のみで抜粋したいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

バージョン 10.27 で
function.phpに

add_filter( 's2_excerpt_on_words', '__return_false' );

を記述することで日本語でも抜粋(55文字)になるように変更されました。

以下ソース
576 public function create_excerpt( $text, $html = false ) {
577 $excerpt_on_words = apply_filters( 's2_excerpt_on_words', true );
578
579 if ( false === $html ) {
580 $excerpt = trim( wp_strip_all_tags( $text ) );
581 } else {
582 $excerpt = strip_shortcodes( $text );
583 }
584
585 if ( true === $excerpt_on_words ) {
586 $words = explode( ' ', $excerpt, $this->excerpt_length + 1 );
587 } else {
588 $words = preg_split( '//u', $excerpt, $this->excerpt_length + 1 );
589 }
590

投稿2019/02/25 23:18

hakochan

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。たまたま使ったことがあったので、FAQのページを見てみました。
http://plugins.readygraph.com/subscribe2/faq/

こちらの26番の内容と近かったりしますでしょうか。

投稿2016/10/22 15:43

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

worldrun

2016/10/23 05:37

ありがとうございます、早速読んでみました。 そもそもこのプラグインなのですが、初期の仕様だと「more」以前のテキストを「抜粋」と認識するようです。 その文字数制限が標準で55になっていて、この例だと30にできるようです。 まず1点目として、moreタグ無しで制限出来るようにしたいということです。 2点目が、この関数をsubscribe2.phpに入れてみても、思った通りの動作をしなかったということです。 2点目に関しては、ctrl+Fで探しても「s2_excerpt_length」が見つからず、イマイチピンときませんでした。 現状このような感じです。
suama

2016/10/24 01:55

こんにちは。 コメント、質問への追記ありがとうございます! 該当するソースコードがこれと一致するなら、function published の所でメール本文を生成している部分があります。 https://plugins.trac.wordpress.org/browser/subscribe2/trunk/classes/class-s2-core.php#L361 このあたり調整するといいのではないでしょうか。 $post->post_excerpt() で抜粋が取得できる場合はそちらを使う、関数で抜粋がなかった場合に<!--more--> タグを見ている部分があるので、その辺をいじるのかなと思います。
worldrun

2016/10/24 09:10

ありがとうございます。 該当ファイルを調べてみた所<!--more-->があるかないかで分岐をしているようでした。 まず驚いたのが、仕様ではmoreタグがなければexcerpt_lengthで抜粋するとなっている所でした。 しかし実際にはmoreタグの抜粋しか出来ませんでした。分岐部分を削ってみてもダメでしたしexcerpt_lengthの中身を5にしてみても抜粋出来ませんでした。 設定ではHTML-Excerptにしていますので、excerpt_lengthを使ったフィルタリングがうまく機能していないような感じです。
suama

2016/10/24 09:58

実際に動かしたわけではないので、推測でのコメントになってしまい、容赦ください。 (ソースとしては合っていますでしょうか)
hakochan

2019/02/21 05:55

ソースをみてみたところやっぱりアメリカ人?ですね 抜粋の方法は55文字ではなく、半角空白で区切られた単語55wordが抜粋されるようになっています。 したがって日本語の場合普通の文章で途中に半角の空白は55もありませんから全文が抜粋となります。 ちょっと書き換えるだけで変更できるのですが、バージョンアップでもとに戻らないように作者に改善を求めています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問