WP User Frontendで投稿タイトルが勝手に省略されるのを解決した話

現在、WordPressで小中規模程度の会員サイトのようなものを制作しているのですが、その実現のために「WP User Frontend(以下、WPUF)」というプラグインを利用しています。

このプラグインは簡単に説明すると、WordPressにログインしなくても記事を投稿できるようにしたり、記事投稿用のフォームを簡単に作成できるようにするものです。

コレを使ってサイトを構築していたのですが、1つ問題が発生しました。

問題発生

それは、自分が投稿した記事の一覧画面で投稿タイトルが勝手に省略されてしまうという問題です。

プラグインを使うことで、ユーザーのアカウントページ *というものが利用できるようになり、そのページを開くとユーザーは自分が投稿した記事の一覧を確認することができます。
* プラグインの設定で「WPUF Account Page」として指定した固定ページです。

しかし、その画面で表示されるタイトルが先頭の5文字までとなっており、その後が「・・・」で省略されてしまうのです。

例えば、「H25年/日産/ティーダ/ディーゼル/MT車」というタイトルなら「H25年/・・・」、

「運転シミュレーター AX-0203」というタイトルなら「運転シミュ・・・」といった具合。

実際にタイトルが省略された画面のキャプチャ

WPUF公式のヘルプを見てもこんな問題が起こることについて説明はされておらず、機能解説ページでも投稿一覧の画像はタイトルがしっかり表示されていました。

サポートからの回答

これは困ったと色々調べてみましたが、設定で投稿タイトルを省略表示させるようなものはありませんでした。

結局、プラグインのサポートに何度か問い合わせをした結果、このページのテンプレートファイルを直すしかないことがわかりました。

Hi there,It seems like you have tried several troubleshooting steps, but the issue with the post titles being truncated on your account page persists.

To address this, you can try the following solution:

Edit the account page template where the post titles are displayed and adjust the code snippet responsible for truncating the titles. You can locate this code in the template file associated with the account page.

If you need further assistance with this customization, you may consider reaching out to a developer who can help modify the template to display the full post titles on your account page.

Let me know if you need any more help with this.

〜意訳〜
投稿タイトルが表示されるアカウントページテンプレートを修正しな。
でも場所は教えてやんねーよ。もし手に負えなかったら開発者に聞け。

意訳なので間違いがある可能性はありますが、こんな感じだと思います。

プラグインのヘルプに問い合わせして、テンプレートファイルを修正するように回答をいただたのに、そのファイルと修正箇所を教えてもらえないとは思いませんでした。

お前が開発者に聞いて回答しろよ。とは思うのですが、なんとか自分で調べてみた結果、以下の場所を修正することで解決することができました。

同じ問題で悩んでいる人は相当少ないとは思いますが、参考になれば幸いです。

解決方法

該当のテンプレートファイルは以下の場所にある「posts.php」です。

public_html/wp-content/plugins/wp-user-frontend/templates/dashboard/posts.php

そして、このファイルの121行目を確認すると以下のようになっていました。

            <tbody>
                <?php
                global $post;
                $stickies      = get_option( 'sticky_posts' );
                while ( $dashboard_query->have_posts() ) {
                    $dashboard_query->the_post();
                    $show_link        = !in_array( $post->post_status, ['draft', 'future', 'pending'] );
                    $payment_status   = get_post_meta( $post->ID, '_wpuf_payment_status', true );
                    $is_featured      = in_array( intval( $post->ID ), $stickies, true ) ? ' - ' . esc_html__( 'Featured', 'wp-user-frontend' ) . ucfirst( $post_type ) : '';
                    $title            = wp_trim_words( get_the_title(), 5 ) . $is_featured;
                    ?>

この「( get_the_title(), 5 )」の数字部分がどうやらタイトルの文字数としての指定のようです。

試しにこの数字をタイトルすべてが収まる数字に変更(5 → 200)したところ、以下のように投稿タイトルが省略されずに表示されるようになりました。

タイトル文字数問題が改善された状態

注意

最後にこの対処方法の注意点です。

WordPressを利用する人にとって、この手の対応の常識として注意しなければならないのが、プラグインがアップデートされるとこの設定が消える可能性があることです。

プラグインがアップデートされることで、もしposts.phpに変更が発生していたら、当然上書きされることになります。

そうするとこの設定は初期状態に戻ることになりますので、その場合は改めて同じ操作を行う必要がでてきます。

この解決方法を試す際にはその点も考慮した運用が必要になることにご注意ください。

サイト制作に関するご相談・お見積りなどお気軽にご相談ください。

新規サイト制作では、提案・制作から公開後の保守・運用・更新までトータルで、あなたのお力になります。

既存のサイトでも、簡易な修正や機能追加、更新のお手伝いやレッスンなど、幅広く対応させていただきます。

まずは、お気軽に今お持ちのお悩みをお聞かせください。

この記事が役に立ったらハートをクリックしてもらえると嬉しいです。

コメント

タイトルとURLをコピーしました