Ako vytvoriť šablónu centrálnej stránky komentárov vo WordPress

Jedným zo spôsobov, ako zvýšiť angažovanosť návštevníkov, je odmeňovať ich komentáre tým, že ich prezentujú na vašom webe. Okrem toho môžete tiež uviesť hlavných komentárov, ktorí v tomto procese odkazujú späť na svoje webové stránky. Tu vytvoríme špeciálnu šablónu stránky, na ktorej sa tieto komentáre a komentáre zobrazia na jednom mieste.


V krátkosti, tento tutoriál vás naučí, ako:

  1. vytvoriť šablónu stránky,
  2. pomocou dotazov SQL v kóde môžete načítať komentáre s rôznymi parametrami,
  3. vytvorte časť stránky, ktorú bude môcť zobraziť iba správca,
  4. pridať podporu pre doplnok súvisiaci s komentármi.

Vytvorenie šablóny stránky

Najjednoduchší spôsob vytvorenia šablóny stránky je otvorenie súboru page.php vo vašej téme, ktorý bude zhruba vyzerať takto:

<?php get_header (); ?>

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

<?php the_title (); ?>

<?php the_content (); ?>

<?php comments_template (); ?>
<?php nakoniec; koniec Ak; ?>

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

Skopírujte a vložte obsah page.php a pridajte ho na začiatok:

<?php
/ *
Názov šablóny: Centrálne komentáre
* /
?>

A ulož to. Neexistujú žiadne skutočné pravidlá pre pomenovanie súboru šablóny stránky, ale je dobré ísť s predponou, aby bol rozpoznateľný, povedzte „pt-comment-central.php“. Do tejto šablóny stránky sme nepridali nič, ale je spustená a je možné ju vybrať v oblasti písania novej oblasti hlavného panela stránky..

Načítavajú sa komentáre

Pre túto šablónu stránky uvádzame štyri rôzne aspekty komentárov:

  • Nedávne komentáre,
  • Posledné spätné odkazy / pingbacky,
  • Najlepší komentátori,
  • Najobľúbenejšie príspevky,

Najprv to urobíme Nedávne komentáre:

Nedávne komentáre

    <?php
    $ max = 7; // číslo položky získať
    globálny $ wpdb;
    $ sql = "VYBERTE c. *, P.post_title Z $ wpdb->komentáre c VNÚTORNÝ PRIHLÁŠKA $ wpdb->príspevky p ZAP (c.comment_post_id = p.ID) KDE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) OBJEDNÁVKA comment_date DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% g % na % pt,;

    $ echoed = 0;
    foreach ($ results as $ row) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ Replacements = array ($ row->comment_title, $ row->COMMENT_DATE, get_avatar ($ row->comment_author_email, ’32’), $ row->POST_TITLE, get_permalink ($ row->comment_post_ID), $ row->comment_author_url, $ row->COMMENT_AUTHOR, $ row->comment_ID);
    ozvena

  • ‘. str_replace ($ tagy, $ náhrady, $ template). ‘
  • ,;
    $ echoed = 1;
    }
    ak ($ ​​echoed == 0)
    ozvena

  • Nenašli sa žiadne komentáre.
  • ,;
    ?>

Dotaz SQL vyžaduje všetky schválené komentáre zoradené podľa dátumu (najnovšie prvé). $ max je miesto, kde sme nastavili množstvo pripomienok, v našom prípade 7. Výstupom vyššie uvedeného kódu bude neusporiadaný zoznam posledných komentárov:

Zoznam posledných komentárov

S trochou CSS to môžeme narovnať, aby vyzerali lepšie:

# cc-recent-comments li {
šírka: 100%;
plavák: vľavo;
list-style-type: none;
}

# cc-recent-comments li img {
plavák: vľavo;
horná hranica: -5px;
}

Zoznam posledných komentárov so správnym CSS

$ template určuje, ako sa bude písať skutočný text; vychádza z formátu, ktorý vytvoril Remix komentára WP, a kliknutím na tento odkaz sa dozviete viac o jeho prispôsobení (pozrite si „tokeny“).

Ďalej je Posledné Pingbacky / Trackbacky:

Posledné Pingbacky / Trackbacky

    <?php
    $ sql = "VYBERTE c. *, P.post_title Z $ wpdb->komentáre c VNÚTORNÝ PRIHLÁŠKA $ wpdb->príspevky p ZAP (c.comment_post_id = p.ID) KDE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) OBJEDNÁVKA comment_date DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% g % na % pt,;

    $ echoed = 0;
    foreach ($ results as $ row) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ Replacements = array ($ row->comment_title, $ row->COMMENT_DATE, get_avatar ($ row->comment_author_email, ’32’), $ row->POST_TITLE, get_permalink ($ row->comment_post_ID), $ row->comment_author_url, $ row->COMMENT_AUTHOR, $ row->comment_ID);
    ozvena

  • ‘. str_replace ($ tagy, $ náhrady, $ template). ‘
  • ,;
    $ Zopakoval = 1;
    }
    ak ($ ​​echoed == 0)
    ozvena

  • Nenašli sa žiadne komentáre.
  • ,;
    ?>

Vyššie uvedený kód je veľmi podobný kódu, ktorý máme pre posledné komentáre. Jediným rozdielom je, že teraz žiadame o komentáre s textom „comment_type“ pod „pingback“ / „trackback“ a šablóna je tiež trochu iná. result:

Zoznam posledných Pingbacks a Trackbacks

Tu je kód pre Najlepší komentátori:

Najlepší komentátori

    <?php
    $ sql = "VYBERTE comment_author, comment_author_url, comment_author_email, počítať (comment_ID) ako comment_count OD $ wpdb->comments WHERE comment_approved = ‘1’ AND comment_type not in (‘trackback’, ‘pingback’) GROUP BY comment_author, comment_author_url, comment_author_email OBJEDNÁVKA comment_count DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% g% an (% c komentáre) “;

    $ echoed = 0;
    foreach ($ results as $ row) {
    $ tags = array (‘% g’, ‘% au’, ‘% an’, ‘% c’);
    $ Replacements = array (get_avatar ($ riadok->comment_author_email, ’32’), $ row->comment_author_url, $ row->COMMENT_AUTHOR, $ row->COMMENT_COUNT);
    ozvena

  • ‘. str_replace ($ tagy, $ náhrady, $ template). ‘
  • ,;
    $ echoed = 1;
    }
    ak ($ ​​echoed == 0)
    ozvena

  • Nenašiel sa žiadny komentátor.
  • ,;
    ?>

Nič moc tam nevadí. Všimnite si chlad get_avatar () Funkcia, ktorá vám však umožní gravitáciu pre kohokoľvek, ktorého e-mailovú adresu zadáte. V takom prípade si obrázok avataru stiahneme pomocou e-mailovej adresy komentátora. S CSS podobným tej, ktorú máme za posledné komentáre, môžeme dosiahnuť tento výsledok:

# cc-top-commentsers li {
šírka: 100%;
plavák: vľavo;
list-style-type: none;
}

# cc-top-commentsers li img {
plavák: vľavo;
horná hranica: -5px;
}

Zoznam hlavných komentátorov

Posledné je Najobľúbenejšie príspevky:

Najobľúbenejšie príspevky

    $ sql = "VYBERTE s. *, C.comment_count OD $ wpdb->príspevky p INNER JOIN (SELECT comment_post_id, count (comment_ID) ako comment_count from $ wpdb->komentáre KDE comment_approved = ‘1’ GROUP BY comment_post_id) c ON (c.comment_post_id = p.ID) OBJEDNÁVKA c c .ment_count DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% pt (% c komentáre) “;

    $ echoed = 0;
    foreach ($ results as $ row) {
    $ tags = array (‘% pd’, ‘% pt’, ‘% pu’, ‘% c’);
    $ Replacements = array ($ row->post_date, $ row->POST_TITLE, get_permalink ($ row->ID), $ row->COMMENT_COUNT);
    ozvena

  • ‘. str_replace ($ tagy, $ náhrady, $ template). ‘
  • ,;
    $ echoed = 1;
    }
    ak ($ ​​echoed == 0)
    ozvena

  • Nenašiel sa žiadny komentátor.
  • ,;
    ?>

Zoznam najviac komentovaných príspevkov

A to je všetko. Ďalej pridáme nejaké vychladnutie pridaním vecí, ktoré môže vidieť iba správca.

Informácie iba pre správcov

Ak chcete zobraziť obsah iba pre správcov, môžeme použiť tento útržok kódu z WPCandy:

<?php
global $ user_ID;
ak ($ ​​user_ID):
if (current_user_can (‘level_10’)):
// tu nájdete iba informácie pre správcov.
koniec Ak;
koniec Ak; ?>

Teraz na hlavnom paneli získame rýchly prehľad o celkovom počte schválených, čakajúcich na kontrolu a komentároch týkajúcich sa spamu. Zopakujme to pre našu šablónu stránky, aby sme mali ľahší prístup iba pre správcov:

<?php
$ num_comm = wp_count_comments ();
?>
Celkový počet komentárov: /wp-admin/edit-comments.php? “><?php echo $ num_comm->TOTAL_COMMENTS; ?>
schválené: /wp-admin/edit-comments.php?comment_status=approved “><?php echo $ num_comm->schválené; ?>
moderuje: /wp-admin/edit-comments.php?comment_status=moderated “><?php echo $ num_comm->moderované; ?>
Nevyžiadaná pošta: /wp-admin/edit-comments.php?comment_status=spam “><?php echo $ num_comm->nevyžiadaná pošta; ?>

admin

wp_count_comments () je elegantná funkcia, ktorá vracia pole rôznych čísel stat komentárov. Pridávame odkazy aj do príslušnej oblasti správy komentárov.

Pridanie niektorých iskier

Nakoniec povedzte, že nájdete skvelé doplnky súvisiace s komentármi, ktoré chcete začleniť do tejto šablóny stránky. Namiesto pridávania ďalších kódov pridajte podporu. Pre tento príklad pôjdem s Iskry aktivity doplnok, ktorý môže na bočnom paneli zobraziť graf štýlu „iskry“, ktorý označuje aktivitu príspevkov a / alebo komentárov. „Znie to skvele.

Súbor readme.txt doplnku vás zvyčajne naučí, ako ho pridať do súborov tém. V našom prípade môže byť tento kód nasledovný:

<?php
if (function_exists (‘activitysparks’))) {
activitysparks (array ( ‘súbor dát’ =>’Legenda’, ‘HEIGHT_PX’ =>100, ‘čo zodpovedá WIDTH_PX’ =>600, ‘obdobie’ =>30, ‘kliešte’ =>24));
}
?>

Doplnok ActivitySparks

function_exists () kontroluje, či je k dispozícii určitá funkcia; v našom prípade funguje funkcia iskry aktivity, ktorá bude k dispozícii, ak bude doplnok nahraný a aktivovaný. Ak je k dispozícii, zobrazíme graf. Ak nie, potom naša šablóna stránky nič nezobrazí (ale bude fungovať v poriadku, bez chýb).

Výsledok a príklad

Príkladom tejto šablóny stránky je k dispozícii tu. Používa kódy, ktoré tu vidíte, s niekoľkými úpravami, väčšinou na udržanie konzistencie štruktúry HTML so zvyškom webu. Celý kód pre túto šablónu stránky je k dispozícii na adrese Pastebin.

Úvery a ďalšie čítania

  • Kódy použité na zobrazenie rôznych posledných a najvyšších komentárov sú prevzaté Remix komentára WP zapojiť. Prezrite si jeho kód a získajte viac informácií o komentároch, ako napríklad vylúčenie správcovských komentárov od hlavných komentárov alebo ako zohľadniť iba posledné komentáre. Šablóna $, ktorú používame na formátovanie výstupu, sa dá z tejto stránky dozvedieť viac.
  • Vytvorenie vlastnej šablóny stránky o kóde WordPress.
  • Zobrazuje sa výučbový obsah iba pre správcov na 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