WordPressの「Ultimate Member」プラグインでカスタム投稿タイプを使う方法

公開日:2017年3月23日 使い方など
Knowledge Base Wordpress パソコン カスタマイズ 設定

WordPressで会員制サイトを作る際にユーザーの登録・削除・ユーザープロフィールの表示/編集などができるようになるプラグイン「Ultimate Member」

1つのプラグインですごく高機能、いろいろなサードパーティプラグイン(作者が作っている訳ではなく第三者がこのプラグインの追加機能として提供しているもの)があるところから掲示板機能の定番ともいえる「bbpress」や、カスタムフィールドを使いやすくする「Advanced Custom Fields」と同様、使えるプラグインであることが分かります。

今回別のサイトで

というWordpressに特化した純日本語のフォーラムサイトを構築していくにあたってこのプラグインを使用しました。

※リンクのデモサイトは別の機能を持つQ&Aサイトへリニューアルしており、現在別ページへリダイレクトされます

フロントエンドから投稿してもらった質問に対して、コメント機能を使って回答などのやりとりをしていくという仕組みにする中で、カスタム投稿タイプを使ってフォーラム部分を作る予定で作業を進めていると、「Ultimate Member」のプロフィール画面で表示できる、そのユーザーが投稿した記事(この場合は質問)の一覧にはカスタム投稿タイプが反映されないという事態が発生。

対応できる方法がありましたので紹介しておきます

「Ultimate Member」プラグインでカスタム投稿タイプを使うには

通常だとプログラム中で表示する記事の一覧を絞り込んでテンプレートへ吐き出して表示というのが大抵のプラグインで行う動作なので、たくさんあるソースをいろいろと見てみたものの、それに該当するクエリーが見つかりませんでした。

よく調べるとこのプラグインで表示するプロフィール画面は通常の画面にCSSやdiv要素を使って表現するのではなく、独自のテンプレートを使用していることが分かりました。そしてその中にクエリーがあることが発覚、これで解決です。

編集するテンプレートはプラグインフォルダの中の「ultimate-member」→「templates」→「profile」と開いた中の「posts.php」に書かれていて、管理画面からは触れなかったのでFTPを使ってダウンロード。

そしてファイルを開くと最初の行に

<?php $query_posts = $ultimatemember->query->make('post&posts_per_page=10&offset=0&author=' . um_user('ID') ); ?>
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

という記述があり、ここで投稿タイプを指定していることが分かりました。

指定しているのは
make('post&posts_per_page=10&offset=0&author=' . um_user('ID') );

という部分。

赤字で書いた「post(投稿の意味)」をカスタム投稿タイプのスラグ名に変更して保存した後、元の場所へ上書きすることでカスタム投稿タイプからのみ記事の一覧(このサイトの場合は質問の一覧)が表示されるようになりました。

念のため元のファイルはサーバー上で「posts-xx.php」のようにリネームして、いつでも元の状態に戻しておくことをお勧めします。

この方法はいろいろと検索して海外の方が解説しておられました

↑  ↑  のサイトです。これを参考に作業をすすめました。

ひまあーと(管理人)
  • 記事の作者: ひまあーと(管理人)

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。


いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報