サポート » プラグイン » WP-Membersを使って投稿ページの特定の部分だけ非表示にしたい (

  • 解決済 s0508

    (@s0508)


    WP-Members(プラグイン)を使って会員サイトを作成しようとしていますが、
    自分の目的であるカスタムフィールドを含むhtml部分が非表示になりません。
    色々調べてみて非表示になる部分が<?php the_content(); ?>だけのようでした。
    そこで各サイトを参考にしてthe_contentにフィルターフックを試したりしてみたのですがうまく非表示になりませんでした。
    目的を実現するためにご教授いただけませんでしょうか?

    ■目的
    基本的にすべてのページがクローズですが、観覧可能なページもあり、
    表示したい内容はカスタムフィールド値を含むhtml部分です。
    ※single.phpページに直接htmlを記述しています。

    [一部抜粋]
    <?php the_content(); ?>
    <table>
    <tr>
    <td><?php if ( post_custom(‘number’) ) : ?><?php echo post_custom(‘number’); ?><?php endif; ?></td>
    <td>
    <?php if ( post_custom(‘date1’) ) : ?><?php echo post_custom(‘date1’); ?><?php endif; ?></td>
    </tr>
    </table>

    テーブル部分を会員以外の場合は非表示にしたいです。

    また、WP-Membersでは実現できないようでしたらできそうなプラグインを教えていただければ幸いです。

    以上、よろしくお願いします。

14件の返信を表示中 - 1 - 14件目 (全14件中)
  • 現在ユーザーがログインしているかどうかを判別すればいいのでしょうか。
    is_user_logged_inを使って判別が可能だと思います。

    <?php the_content(); ?>
    <?php if (is_user_logged_in()) : ?>
    <table>
    <tr>
    <td><?php if ( post_custom('number') ) : ?><?php echo post_custom('number'); ?><?php endif; ?></td>
    <td>
    <?php if ( post_custom('date1') ) : ?><?php echo post_custom('date1'); ?><?php endif; ?></td>
    </tr>
    </table>
    <?php endif; ?>
    トピック投稿者 s0508

    (@s0508)

    >tantantanshio 様

    回答ありがとうございます。
    ログイン判別で問題解決しました。
    ありがとうございます。

    ちなみに会員にレベルあるいは権限に応じて観覧制限のようなものはできるのでしょうか?
    ※プラグインはUser Role Editorを使用しています。

    トピック投稿者 s0508

    (@s0508)

    >tantantanshio 様

    問題解決したと思っていたのですが、会員ではなくても
    <table>
    <tr>
    <td><?php if ( post_custom(‘number’) ) : ?><?php echo post_custom(‘number’); ?><?php endif; ?></td>
    <td>
    <?php if ( post_custom(‘date1’) ) : ?><?php echo post_custom(‘date1’); ?><?php endif; ?></td>
    </tr>
    </table>
    観覧できるページを作りたいのでis_user_logged_inだと表示できない状態です。
    何か他の方法がありますでしょうか?

    トピック投稿者 s0508

    (@s0508)

    WP-Members(プラグイン)を利用する理由として、
    設定により記事ごとに制限・非制限を掛けられることがあります。
    WP-Membersの非表示にする部分は<?php the_content(); ?>の中のようなので
    以下のコードを<?php the_content(); ?>として表示できないでしょうか?

    <table>
    <tr>
    <td><?php if ( post_custom(‘number’) ) : ?><?php echo post_custom(‘number’); ?><?php endif; ?></td>
    <td>
    <?php if ( post_custom(‘date1’) ) : ?><?php echo post_custom(‘date1’); ?><?php endif; ?></td>
    </tr>
    </table>

    投稿に制限をかけるとカスタムフィールドに block:true が保存されるので、これを利用すればいいのでは?

    トピック投稿者 s0508

    (@s0508)

    >orangethyme 様
    >カスタムフィールドに block:true が保存されるので、これを利用すればいいのでは?

    ご回答ありがとうございます。
    WP-Membersで制限を掛けると block:true が保存されるところまではわかるのですが、
    それを具体的にどう利用すればよいのでしょうか?

    よろしくお願いします。

    キーblockの値を取得して、trueであったら、という分岐。

    <?php $member = get_post_meta(get_the_ID(),’block’); if ($member = ‘true’) { ?>会員向け<?php } ?>

    トピック投稿者 s0508

    (@s0508)

    >orangethyme 様

    ご回答ありがとうございます。

    <?php $member = get_post_meta(get_the_ID(),’block’); if ($member = ‘true’) { ?>会員向け<?php } ?>
    で制限を掛けたページ(会員は表示)を可能かと思いますが、
    会員でなくても(unblock:true)制限部分を表示(上記コードの”会員向け”部分)できるページも作成したいのでその場合はどのようにすればよいでしょうか?

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

    会員向けの設定をしたページで、非会員に表示する部分が必要、ということなら、カスタムフィールドで別のチェック項目を作成して、そのチェックが有る場合は表示、など?

    トピック投稿者 s0508

    (@s0508)

    >orangethyme

    ご回答ありがとうございます。
    私の説明が悪かったので誤解させてしまったようですが、
    会員向けの設定をしたページで、非会員に表示する部分が必要ということではなく、
    会員向けの内容と同じ内容を投稿記事ページによって表示・非表示にしたいと考えています。
    そこで、WP-Membersを利用して記事の観覧制限の有/無を利用したいのですが、
    制限される部分が<?php the_content(); ?>の内容のようなのでうまくてきないか模索しているところです。
    回答いただいた、block:true を利用する方法や別の方に教えていただいた、is_user_logged_inを利用する方法だと会員のみへの表示は可能ですが、非会員でも観覧可能なページを作成した時に、同じ内容が表示されないという状況です。

    blockがtrueの場合、ログイン時に表示、trueでない場合は表示、というふうに書けば良いと思いますが。

    トピック投稿者 s0508

    (@s0508)

    >orangethyme 様

    ご回答ありがとうございます。
    具体的にはどのように書けばよいのでしょうか?

    よろしくお願いします。

    トピック投稿者 s0508

    (@s0508)

    >orangethyme 様

    以下のようにsingle.php(記事ページ)書いてみました。
    結果としましては、会員(block:true)・非会員(unblock:true)それぞれ分岐するのですが、
    内容が同じだと同じものが表示されます。
    会員限定にしたいページでも非会員が見れる内容と同じになってしまいます。
    ご回答いただきました、blockがtrueの場合、ログイン時に表示、trueでない場合は表示
    という方法でどのように同じ内容を会員のみの記事と非会員でも見れる記事にすればよいのでしょうか?お手数ですが、よろしくお願い致します。

    <?php if(get_post_meta( $post->ID, ‘block’, true )): ?>
    <table>
    <tr>
    <td><?php if ( post_custom(‘number’) ) : ?><?php echo post_custom(‘number’); ?><?php endif; ?></td>
    <td>
    <?php if ( post_custom(‘date1’) ) : ?><?php echo post_custom(‘date1’); ?><?php endif; ?></td>
    </tr>
    </table>
    <?php elseif(get_post_meta( $post->ID, ‘unblock’, ture )): ?>
    <table>
    <tr>
    <td><?php if ( post_custom(‘number’) ) : ?><?php echo post_custom(‘number’); ?><?php endif; ?></td>
    <td>
    <?php if ( post_custom(‘date1’) ) : ?><?php echo post_custom(‘date1’); ?><?php endif; ?></td>
    </tr>
    </table>
    <?php endif; ?>

    トピック投稿者 s0508

    (@s0508)

    ショートコードを利用することで解決しました。
    ありがとうございました。

14件の返信を表示中 - 1 - 14件目 (全14件中)
  • トピック「WP-Membersを使って投稿ページの特定の部分だけ非表示にしたい (」には新たに返信することはできません。