Domanda

Ho un sito mult-autore dove l'autore ottiene alto traffico. La gente vuole sapere di più su di loro. Ho modificato l'autore di mostrare più informazioni, alcuni campi personalizzati, ecc, ma quello che mi piace molto fare è accendere Commenti per pagina author.php (in modo che altri utenti registrati possono lasciare recensione-come i messaggi per l'autore), e, infine, offrono un tipo di stella-feedback di effetto in modo che gli utenti possono "tasso", l'autore. Ho cercato per plugin e altre funzioni, ma sembra che tutto è per messaggi o prodotti o qualcosa del genere. Tutta la comprensione è molto apprezzato!

È stato utile?

Soluzione

just to add to what Rarst answered, you can create Custom Post Type not to emulate Comments but as stub posts with no ui.

then to every Author on your site add a custom user metadata that will hold a post id of your newly made post type (one per each author) and in your author template before you call the comment loop\form set the global $post to that post id.

something like:

<?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();
?>

Now going back and updating all of your existing users could be a pain, but for newly create user you can create the stub post type id for user metadata on registration.

and you can use any rating plugin that is based on posts now that you have a post (you custom post type) associated with each author.

Hope this makes sense. Ohad.

Altri suggerimenti

try GD star rating and look into the options and tweak it to be displayed only on specific pages

in the settings page of GD star rating there is the following :

Auto insert rating code:

For individual posts.

For individual pages.

For posts displayed in Archives.

For posts displayed on Front Page.

For posts displayed on Search results

make sure to choose For individual pages. then it should show on pages only

If you want to exclude some pages, you might have to look into the code and exclude some pageId - but i think , this will get you a bit closer :)

Yep, mechanics of comments in WP are tightly tied to posts. Which things like archives aren't.

Your options are:

  1. Associate comments with fake hidden posts/pages.

  2. Use external comment system that doesn't care about WP mechanics (not something I would recommend, but it works for some people).

  3. Create and use Custom Post Type that will emulate comments.

thanks for code Bainternet

If anyone wants to update all useres I made quick hack, so you can check multiple useres and change theirs roles , then change it back, and you get all profiles updateded

       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 );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top