web-dev-qa-db-ja.com

作者ページ:コメントと評価?

著者ページのトラフィックが多いマルチ著者サイトがあります。人々は彼らについてもっと知りたいのです。私は著者ページを修正してより多くの情報やいくつかのカスタムフィールドなどを表示していますが、本当にしたいのはauthor.phpページのコメントをオンにすることです。そして最終的にユーザーが作者を「評価」できるように効果の星評価タイプを提供します。私はプラグインやその他の機能を検索しましたが、すべてがPostsやProductsなどのものであるように見えます。どんな洞察力も大歓迎です!

4
RodeoRamsey

rarstが回答したものに追加するために、コメントをエミュレートするのではなく、UIのない​​スタブ投稿としてカスタム投稿タイプを作成できます。

あなたのサイトのすべての投稿者にあなたの新しく作った投稿タイプの投稿者IDを保持するカスタムユーザメタデータを追加します(それぞれの投稿者につき1つ)。投稿ID.

何かのようなもの:

<?php
//save the true post id
$true_id = $post->ID;
// populate $post with the stub post
$author_post_id = get_user_meta($user_id, author_post_id,true);
query_posts("p=$author_post_id");
the_post();

//fool wordpress to think we are on a single post page
$wp_query->is_single = true;
//get comments
comments_template();
//reset wordpress to ture post
$wp_query->is_single = false;
query_posts("p=$true_id");
the_post();
?>

今戻って既存のユーザー全員を更新するのは面倒かもしれませんが、新しくユーザーを作成する場合は、登録時にユーザーメタデータのスタブ投稿タイプIDを作成できます。

各投稿者に関連付けられた投稿(あなたはカスタム投稿タイプ)を持っているので、投稿に基づいた任意の評価プラグインを使用できます。

これが理にかなっていることを願っています。オハド.

6
Bainternet

gdの星評価を試して、オプションを調べて、特定のページにのみ表示されるように調整してください。

gdの星評価の設定ページには以下があります:

自動挿入評価コード:

個々の投稿用です。

個々のページに。

アーカイブに表示される投稿用。

フロントページに表示される投稿用。

検索結果に表示される投稿の場合

必ず個々のページの場合を選択してください。その後、ページにのみ表示されます。

いくつかのページを除外したい場合は、コードを調べていくつかのpageIdを除外する必要があるかもしれません。

2
mireille raad

うん、WPのコメントの仕組みは投稿と密接に関係しています。アーカイブのようなものは違います。

あなたのオプションは:

  1. 偽の隠し投稿/ページにコメントを関連付けます。

  2. WPの仕組みを気にかけない外部コメントシステムを使用してください(私がお勧めするものではありませんが、一部の人々には有効です)。

  3. コメントをエミュレートするカスタム投稿タイプを作成して使用します。

1
Rarst

コードをありがとうBainternet

誰かが私が素早くハックしたすべてのユーザーを更新したいのであれば、複数のユーザーをチェックしてそれらの役割を変更してから元に戻すことですべてのプロファイルが更新されます。

       add_action( 'set_user_role', function( $user_id, $role, $old_roles)
     {
$user_added = get_userdata( $user_id );
//    foreach($user_id as $user) {
if ($role != $old_roles) {
    $args = array(
        'post_type' => 'user_profile_page',
        'author' => $user_id,
    );
    $posts = get_posts($args);
    if (!$posts) {
        $profile_page = wp_insert_post(array(
            'post_title' => $user_added->user_login.'Profile', // Text only to Map those page @ admin
            'post_type' => "user_profile_page", // Custom Post type which you have created
            'post_status' => 'publish',
            'post_author' => $user_id,
        ));

        /**
         * Save the Profile Page id into the user meta
         */
        if (!is_wp_error($profile_page))
            add_user_meta($user_id, 'user_profile_page', $profile_page, TRUE);
    }
 }
 //    }


   }, 10, 3 );
0