Hur man skapar en kommentars central sidmall i WordPress

Ett sätt att öka besökarnas engagemang är att belöna sina kommentarer genom att visa dem på din webbplats. Dessutom kan du också innehålla de bästa kommentarerna och länka tillbaka till deras webbplats under processen. Här skapar vi en dedikerad sidmall för att visa dessa kommentarer och kommentarer på ett ställe.


Kort sagt kommer denna handledning att lära dig hur du:

  1. skapa en sidmall,
  2. använd SQL-frågor i din kod för att hämta kommentarer med olika parametrar,
  3. skapa ett avsnitt av sidan som bara kan ses av administratören,
  4. lägg till support för en kommentarrelaterad plugin.

Skapa en sidmall

Det enklaste sättet att skapa en sidmall är att öppna page.php-filen i ditt tema, som ungefär kommer att se ut så här:

<?php get_header (); ?>

<?php if (have_posts ()): while (have_posts ()): the_post (); ?>

<?php the_title (); ?>

<?php the_content (); ?>

<?php comments_template (); ?>
<?php samtidigt; endif; ?>

<?php get_sidebar (); ?>
<?php get_footer (); ?>

Kopiera och klistra in page.phps innehåll och lägg till det till toppen:

<?php
/ *
Mallnamn: Kommentarer Central
* /
?>

Och spara det. Det finns inga riktiga regler för att namnge en sidmallfil, men det är en bra idé att gå med ett prefix för att göra det igenkännbart, säg “pt-comment-central.php”. Vi har inte lagt till någonting i den här sidmallen, men den är igång och kan väljas i det nya skrivpanelområdet..

Hämtar kommentarer

För den här sidmallen kommer vi att presentera fyra olika aspekter av kommentarer:

  • Senaste kommentarerna,
  • Senaste trackbacks / Pingbacks,
  • Toppkommentarer,
  • Mest kommenterade inlägg,

Först gör vi det Senaste kommentarerna:

Senaste kommentarerna

    <?php
    $ max = 7; // nummer för att få
    global $ wpdb;
    $ sql = "VÄLJ c. *, P.post_title FRÅN $ wpdb->kommentarer c INNER JOIN $ wpdb->inlägg p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) BESTÄLLNING AV comment_date DESC LIMIT $ max";
    $ resultat = $ wpdb->get_results ($ sql);

    $ mall = ‘% g %en% pt‘;

    $ ekade = 0;
    förhand ($ resultat som $ rad) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ utbyten = matris ($ rad->comment_title, $ rad->COMMENT_DATE, get_avatar ($ rad->comment_author_email, ’32), $ rad->POST_TITLE, get_permalink ($ rad->comment_post_ID), $ rad->comment_author_url, $ rad->COMMENT_AUTHOR, $ rad->comment_ID);
    echo ‘

  • ‘. str_replace ($ taggar, $ ersättningar, $ mall). ‘
  • ‘;
    $ ekade = 1;
    }
    if ($ ekade == 0)
    echo ‘

  • Ingen kommentar hittades.
  • ‘;
    ?>

SQL-frågan ber om alla godkända kommentarer sorterade efter datum (senast först). Max $ är där vi anger hur många kommentarer vi ska få, 7 i vårt fall. Utgången från koden ovan kommer att vara en oordnad lista med senaste kommentarer:

Lista med senaste kommentarer

Med lite CSS kan vi räta ut det för att se bättre ut:

# cc-recent-comments li {
bredd: 100%;
flyta till vänster;
list-stil-typ: ingen;
}

# cc-recent-comments li img {
flyta till vänster;
marginal-topp: -5px;
}

Lista med senaste kommentarer med korrekt CSS

$ mall bestämmer hur den faktiska texten ska skrivas; detta är baserat på det format som gjorts av WP Kommentar Remix, och du kan följa den länken för att lära dig mer om hur du anpassar den (leta efter “tokens”).

Nästa är Senaste Pingbacks / Trackbacks:

Senaste Pingbacks / Trackbacks

    <?php
    $ sql = "VÄLJ c. *, P.post_title FRÅN $ wpdb->kommentarer c INNER JOIN $ wpdb->inlägg p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) BESTÄLLNING AV comment_date DESC LIMIT $ max";
    $ resultat = $ wpdb->get_results ($ sql);

    $ mall = ‘% g %en% pt‘;

    $ ekade = 0;
    förhand ($ resultat som $ rad) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ utbyten = matris ($ rad->comment_title, $ rad->COMMENT_DATE, get_avatar ($ rad->comment_author_email, ’32), $ rad->POST_TITLE, get_permalink ($ rad->comment_post_ID), $ rad->comment_author_url, $ rad->COMMENT_AUTHOR, $ rad->comment_ID);
    echo ‘

  • ‘. str_replace ($ taggar, $ ersättningar, $ mall). ‘
  • ‘;
    $ Ekade = 1;
    }
    if ($ ekade == 0)
    echo ‘

  • Ingen kommentar hittades.
  • ‘;
    ?>

Koden ovan är mycket lik den vi har för senaste kommentarer, de enda skillnaderna är att vi nu ber om kommentarer med ‘comment_type’ under ‘pingback’ / ‘trackback’, och mallen är också lite annorlunda. Resultat:

Lista över senaste Pingbacks och Trackbacks

Här är koden för Toppkommentarer:

Toppkommentarer

    <?php
    $ sql = "SELECT comment_author, comment_author_url, comment_author_email, count (comment_ID) som comment_count FRA $ wpdb->kommentarer WHERE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) GROUP BY comment_author, comment_author_url, comment_author_email ORDER BY comment_count DESC LIMIT $ max";
    $ resultat = $ wpdb->get_results ($ sql);

    $ mall = ‘% g% an (% c kommentarer) ‘;

    $ ekade = 0;
    förhand ($ resultat som $ rad) {
    $ tags = array (‘% g’, ‘% au’, ‘% an’, ‘% c’);
    $ utbyten = array (get_avatar ($ rad)->comment_author_email, ’32), $ rad->comment_author_url, $ rad->COMMENT_AUTHOR, $ rad->COMMENT_COUNT);
    echo ‘

  • ‘. str_replace ($ taggar, $ ersättningar, $ mall). ‘
  • ‘;
    $ ekade = 1;
    }
    if ($ ekade == 0)
    echo ‘

  • Ingen kommentar hittades.
  • ‘;
    ?>

Ingenting för sinnesblåsande där. Lägg märke till sval get_avatar () funktion, vilket ger dig Gravatar för alla vars e-postadress du anger. I det här fallet hämtar vi avatarbilden med kommentarens e-postadress. Med CSS som liknar den vi har för senaste kommentarer kan vi ha detta resultat:

# cc-top-commenters li {
bredd: 100%;
flyta till vänster;
list-stil-typ: ingen;
}

# cc-top-commenters li img {
flyta till vänster;
marginal-topp: -5px;
}

Lista med toppkommentarer

Sista är Mest kommenterade inlägg:

Mest kommenterade inlägg

    $ sql = "VÄLJ s. *, C.comment_count FRA $ wpdb->inlägg p INNER JOIN (VÄLJ comment_post_id, count (comment_ID) som comment_count från $ wpdb->kommentarer WHERE comment_approved = ‘1’ GROUP BY comment_post_id) c ON (c.comment_post_id = p.ID) BESTÄLLNING AV c.comment_count DESC LIMIT $ max";
    $ resultat = $ wpdb->get_results ($ sql);

    $ mall = ‘% pt (% c kommentarer) ‘;

    $ ekade = 0;
    förhand ($ resultat som $ rad) {
    $ tags = array (‘% pd’, ‘% pt’, ‘% pu’, ‘% c’);
    $ utbyten = matris ($ rad->post_date, $ rad->POST_TITLE, get_permalink ($ rad->ID), $ rad->COMMENT_COUNT);
    echo ‘

  • ‘. str_replace ($ taggar, $ ersättningar, $ mall). ‘
  • ‘;
    $ ekade = 1;
    }
    if ($ ekade == 0)
    echo ‘

  • Ingen kommentar hittades.
  • ‘;
    ?>

Lista med mest kommenterade inlägg

Och det är allt. Därefter lägger vi till lite extra svalhet genom att lägga till några saker som bara administratören kan se.

Admin-information

För att visa saker bara för administratörerna kan vi använda det här kodavsnittet från WPCandy:

<?php
global $ user_ID;
if ($ user_ID):
if (current_user_can (‘level_10’)):
// endast admin här.
endif;
endif; ?>

Nu på instrumentpanelen får vi en snabb titt på webbplatsens totala, godkända, väntande granskning och skräppostkommentarer. Låt oss kopiera detta till vår sidmall för enklare, endast administratörsbehörighet:

<?php
$ num_comm = wp_count_comments ();
?>
Totala kommentarer: /wp-admin/edit-comments.php? “><?php echo $ num_comm->total_comments; ?>
Godkänd: /wp-admin/edit-comments.php?comment_status=approved “><?php echo $ num_comm->godkänd; ?>
Modererad: /wp-admin/edit-comments.php?comment_status=moderated “><?php echo $ num_comm->modererat; ?>
spam: /wp-admin/edit-comments.php?comment_status=spam “><?php echo $ num_comm->skräppost; ?>

Administration

wp_count_comments () är en snygg funktion som returnerar en matris med olika kommentarstatnummer. Vi lägger också till länkar till respektive kommentaradministrationsområde.

Lägga till några gnistor

Till sist säger du att du hittar en cool kommentarrelaterad plugin du vill integrera i den här sidmallen. Istället för att lägga till fler koder, låt oss bara lägga till stöd för det. För det här exemplet kommer jag att gå med Aktivitetsgnistor plugin, som kan “visa en” sparkline “-diagram i sidfältet indikerar inlägg och / eller kommentaraktivitet. ”Låter bra för mig.

Vanligtvis kommer en plugins readme.txt-fil att lära dig hur du lägger till den i dina temafiler. I vårt fall kan koden vara så här:

<?php
if (function_exists (‘aktivitetsparks’)) {
activitysparks (array ( ‘dataset’ =>’legend’, ‘height_px’ =>100, ‘width_px’ =>600, ‘period’ =>30, “fästingar” =>24));
}
?>

ActivitySparks-plugin

function_exists () kontrollerar om en viss funktion är tillgänglig; i vårt fall är aktivitetssparksfunktionen, som kommer att vara tillgänglig om plugin har laddats upp och aktiverats. Om den är där, visar vi diagrammet. Om inte kommer vår sidmall inte att visa någonting (men den kommer fortfarande att fungera bra, inga fel).

Resultat och exempel

Ett exempel på denna sidmall är tillgänglig här. Den använder koderna du ser här med några ändringar, mest för att hålla HTML-strukturen i överensstämmelse med resten av webbplatsen. Hela koden för den sidmallen är tillgängligt på Pastebin.

Krediter och vidare avläsningar

  • Koderna som används för att visa olika senaste och översta kommentarer är hämtade från WP Kommentar Remix plugin. Ta en titt på dess kod för att lära dig mer saker att göra med kommentarer, som att utesluta administratörskommentarer från toppkommentarer eller hur man bara tar hänsyn till senaste kommentarer. Mallen $ som vi använder för att formatera utgången kan också läraas mer från den sidan.
  • Skapa din egen sidmall på WordPress Codex.
  • Visar bara handledning för innehåll på WPCandy.
  • Jeffrey Wilson Administrator
    Sorry! The Author has not filled his profile.
    follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map