web-dev-qa-db-fra.com

Page auteur: Commentaires et évaluations?

J'ai un site multi-auteurs où la page de l'auteur génère un trafic important. Les gens veulent en savoir plus à leur sujet. J'ai modifié la page de l'auteur pour afficher plus d'informations, des champs personnalisés, etc. Mais ce que j'aimerais vraiment, c'est activer les commentaires de la page author.php (pour que les AUTRES utilisateurs connectés puissent laisser des messages de type critique pour l'auteur), et offrent finalement un type d'effet de classement par étoiles afin que les utilisateurs puissent "classer" l'auteur. J'ai cherché des plugins et d'autres fonctions, mais il semble que tout soit destiné à des publications, à des produits ou à quelque chose du genre. Tout conseil est grandement apprécié!

4
RodeoRamsey

pour ajouter à ce que Rarst a répondu, vous pouvez créer un type de message personnalisé, non pas pour émuler des commentaires, mais comme messages stub sans interface utilisateur.

puis, à chaque auteur de votre site, ajoutez une métadonnée d’utilisateur personnalisée qui contiendra un identifiant de publication de votre type de publication nouvellement créé (une pour chaque auteur) et dans votre modèle d’auteur avant que vous appeliez la boucle de commentaires\form définissez le $ post global sur celui identifiant de poste.

quelque chose comme:

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

Revenir en arrière et mettre à jour tous vos utilisateurs existants peut s'avérer être une tâche ardue, mais pour les utilisateurs nouvellement créés, vous pouvez créer l'ID de type de publication de talon pour les métadonnées de l'utilisateur lors de l'enregistrement.

et vous pouvez utiliser n’importe quel plugin d’évaluation basé sur des publications maintenant que vous avez une publication (votre type de publication personnalisée) associée à chaque auteur.

J'espère que cela a du sens. Ohad.

6
Bainternet

essayez Gd star rating et regardez les options et ajustez-le pour qu'il ne soit affiché que sur des pages spécifiques

dans la page des paramètres de Gd star rating, il y a ce qui suit:

Code de notation d'insertion automatique:

Pour les messages individuels.

Pour des pages individuelles.

Pour les articles affichés dans les archives.

Pour les messages affichés sur la page d'accueil.

Pour les articles affichés dans les résultats de recherche

assurez-vous de choisir pour les pages individuelles. alors il devrait apparaître sur les pages uniquement

Si vous souhaitez exclure certaines pages, vous devrez peut-être consulter le code et exclure certains pageId - mais je pense que cela vous rapprochera un peu :)

2
mireille raad

Oui, la mécanique des commentaires dans WP est étroitement liée aux publications. Quelles choses comme les archives ne sont pas.

Vos options sont:

  1. Associez des commentaires à de faux messages/pages masqués.

  2. Utilisez un système de commentaires externe qui ne se soucie pas de la mécanique WP (ce n’est pas quelque chose que je recommanderais, mais cela fonctionne pour certaines personnes).

  3. Créez et utilisez un type de message personnalisé qui émulera les commentaires.

1
Rarst

merci pour le code Bainternet

Si quelqu'un veut mettre à jour tous les utilisateurs, j'ai effectué un piratage rapide. Vous pouvez ainsi contrôler plusieurs utilisateurs et modifier leurs rôles, puis le modifier à nouveau et mettre à jour tous les profils.

       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
Mateusz Winnicki