2016-12-29 9 views
0

ACF(アドバンスカスタムフィールド)とカスタムポストタイププラグインを使用して自分のカスタムポストタイプを作成しています。ワードプレスでさまざまな色のカスタムポストユーザーを表示

カスタムフィールドを持つカスタムポストタイプを作成しました。 [ここに問題はありません]

ログイン後、私はすべてのカスタム投稿をユーザー(フロントエンドユーザー)に表示しています。 [ここに問題はない]。

特定のカスタム投稿のようなフロントエンドユーザー(ログイン後)は、特定のカスタム投稿に対して無料の登録フォームを記入して送信します。

私はすべてのカスタム投稿をユーザーに表示したいと思いますが、ユーザーが特定の投稿を既に購読している場合は、別の色で表示したいと思います。このための任意のソリューションですか?

+0

サブスクリプションフォームにカスタムポストタイプ名を持つユーザーメタフィールドが追加されていますか?もしそうなら、あなたの質問を更新してください。 –

+0

サブスクリプションフォームにユーザーメタフィールドが含まれていません –

+0

ユーザーXがポストタイプYを購読していることを管理者がどのように知るのですか? –

答えて

1

ユーザーが購読フォームを送信すると、フロントエンドでのポストを表示しながら、ちょうどポストのIDをチェックする今いくつかのカスタムメタキー(subscribed_posts)

<?php 
add_user_meta($user_id, 'subscribed_posts', $post_id); 
//$post_id is the id of post user subscribes to. 
?> 

を使用して、ユーザーのメタデータ内の現在のポストIDを保存し、別の色で表示するためにいくつかの特定のクラスを使用します(あなたのstyle.cssでそのクラスの書き込みCSS、私が購読していないの記事を加入し、灰色のための緑のクラスを使用しました。)

<?php 
$args = array(
    'posts_per_page' => -1, 
    'post_type'  => 'post', 
    'post_status'  => 'publish', 
    'fields'  =>'ids' 
); 

$the_query = new WP_Query($args);//Query for all post that you want to display 
if ($the_query->have_posts()) : 

$subscribed_posts = get_user_meta($user_id);//Get current user id and fetch all subscribed posts. 

while ($the_query->have_posts()) : $the_query->the_post();?> 
    <div class="default <?php echo in_array(get_the_ID(),$subscribed_posts)?'green':'gray'?>"> 
     /*Your post content for every post goes here*/ 
    </div> 
<?php 
endwhile; 
endif; 
wp_reset_postdata(); 

?>

特定のコードとhtmlを表示していれば、より具体的になりました

+0

ありがとうman.let私はこれを行います。私はあなたに戻ってきます –

+0

こんにちは、私は動的な登録フォームを作成し、いつでもそのフィールドを変更するのに役立つ任意のフリーフォームのプラグインを知っていますか? –

+0

私は通常、プラグインなしでカスタムコードされたサブスクリプションを持っています。それは私はremmber。 – Yamu

関連する問題