Kako ustvariti predlogo za osrednjo stran komentarjev v WordPressu

Eden od načinov za povečanje števila obiskovalcev je nagrajevanje njihovih komentarjev s prikazovanjem na vašem spletnem mestu. Poleg tega lahko vključite tudi najboljše komentatorje in se v tem postopku navezujete na njihovo spletno mesto. Tu bomo ustvarili namensko predlogo strani, ki bo na enem mestu prikazala te komentarje in komentatorje.


Skratka, ta vadnica vas bo naučila, kako:

  1. ustvarite predlogo strani,
  2. uporabite SQL poizvedbe v kodi za pridobivanje komentarjev z različnimi parametri,
  3. ustvarite odsek strani, ki si ga lahko ogleda samo Admin,
  4. dodajte podporo za vtičnik, povezan s komentarji.

Ustvarjanje predloge strani

Najlažji način za ustvarjanje predloge strani je, da v svoji temi odprete datoteko page.php, ki bo približno takole:

<?php get_header (); ?>

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

<?php the_title (); ?>

<?php the_content (); ?>

<?php comments_template (); ?>
<?php končno; endif; ?>

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

Kopirajte in prilepite vsebino strani.php in jo dodajte na sam vrh:

<?php
/ *
Ime predloge: komentarji osrednji
* /
?>

In ga shranite. Pravih pravil o poimenovanju datoteke s predlogo strani ni, vendar je dobro, da uporabite predpono, da bo prepoznavna, recimo “pt-comment-central.php”. V to predlogo strani nismo dodali ničesar, vendar je ta na voljo in je izbran na območju za pisanje nove strani nadzorne plošče..

Pridobivanje komentarjev

Za to predlogo strani bomo predstavili štiri različne vidike komentarjev:

  • Zadnji komentarji,
  • Zadnje povratne povratne informacije,
  • Najboljši komentatorji,
  • Najbolj komentirane objave,

Najprej bomo Zadnji komentarji:

Zadnji komentarji

    <?php
    $ max = 7; // številka, ki jo želite dobiti
    globalni $ wpdb;
    $ sql = "IZBERI c. *, P.post_title OD $ wpdb->komentarji c INNER JOIN $ wpdb->objave p ON (c.comment_post_id = p.ID) KJE comment_approved = ‘1’ IN comment_type not in (‘trackback’, ‘pingback’) NAROČITE PO komentarju_dat DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% g % an naprej % pt‘;

    $ odmevalo = 0;
    foreach ($ rezultati kot $ row) {
    $ tags = matrika (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ substitutions = matrika ($ vrstica->komentar_title, $ vrstica->comment_date, get_avatar ($ vrstica->comment_author_email, ’32 ‘), $ row->post_title, get_permalink ($ vrstica->komentar_post_ID), $ vrstica->comment_author_url, $ row->comment_author, $ row->komentar_ID);
    odmev ‘

  • ‘. str_replace ($ oznake, $ substitutions, $ template). ‘
  • ‘;
    $ odmevalo = 1;
    }
    če ($ odmeva == 0)
    odmev ‘

  • Nobenega komentarja ni bilo mogoče najti.
  • ‘;
    ?>

Poizvedba SQL zahteva vse odobrene komentarje, razvrščene po datumu (najprej zadnji). $ max je določitev količine komentarjev, v našem primeru 7. Izhod zgornje kode bo neurejen seznam zadnjih komentarjev:

Seznam zadnjih komentarjev

Z malo CSS-a lahko to popravimo, da bo videti bolje:

# cc-nedavni komentarji li {
širina: 100%;
plovec: levo;
seznam-style-type: noben;
}

# cc-recent-comments li img {
plovec: levo;
zgornja meja: -5px;
}

Seznam zadnjih komentarjev z ustreznim CSS-om

$ template določa, kako bo dejansko besedilo zapisano; to temelji na formatu, ki ga je ustvaril Remx komentarja WP, in sledite tej povezavi, če želite izvedeti več o prilagajanju (poiščite »žetone«).

Naslednja je Zadnji pingback / povratne povratne informacije:

Zadnji pingback / povratne povratne informacije

    <?php
    $ sql = "IZBERI c. *, P.post_title OD $ wpdb->komentarji c INNER JOIN $ wpdb->objave p ON (c.comment_post_id = p.ID) KJE comment_approved = ‘1’ IN comment_type not in (‘trackback’, ‘pingback’) NAROČITE PO komentarju_dat DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% g % an naprej % pt‘;

    $ odmevalo = 0;
    foreach ($ rezultati kot $ row) {
    $ tags = matrika (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ substitutions = matrika ($ vrstica->komentar_title, $ vrstica->comment_date, get_avatar ($ vrstica->comment_author_email, ’32 ‘), $ row->post_title, get_permalink ($ vrstica->komentar_post_ID), $ vrstica->comment_author_url, $ row->comment_author, $ row->komentar_ID);
    odmev ‘

  • ‘. str_replace ($ oznake, $ substitutions, $ template). ‘
  • ‘;
    $ odmevalo = 1;
    }
    če ($ odmeva == 0)
    odmev ‘

  • Nobenega komentarja ni bilo mogoče najti.
  • ‘;
    ?>

Zgornja koda je zelo podobna tisti, ki jo imamo pri Zadnjih komentarjih, edine razlike so v tem, da zdaj prosimo za komentarje z oznako ‘type_type’ pod ‘pingback’ / ‘trackback’, predloga pa je tudi nekoliko drugačna. Rezultat:

Seznam zadnjih pingbackov in povratnih sporočil

Tu je koda za Najboljši komentatorji:

Najboljši komentatorji

    <?php
    $ sql = "SELECT comment_author, comment_author_url, comment_author_email, štej (comment_ID) kot comment_count OD $ wpdb->komentarji KJE comment_approved = ‘1’ IN comment_type not in (‘trackback’, ‘pingback’) SKUPINA BY comment_author, comment_author_url, comment_author_email NAROČITE PO comment_count DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% g% an (% c komentarjev) “;

    $ odmevalo = 0;
    foreach ($ rezultati kot $ row) {
    $ tags = matrika (‘% g’, ‘% au’, ‘% an’, ‘% c’);
    $ substitutions = matrika (get_avatar ($ vrstica)->comment_author_email, ’32 ‘), $ row->comment_author_url, $ row->comment_author, $ row->komentar_broj);
    odmev ‘

  • ‘. str_replace ($ oznake, $ substitutions, $ template). ‘
  • ‘;
    $ odmevalo = 1;
    }
    če ($ odmeva == 0)
    odmev ‘

  • Komentarja ni bilo mogoče najti.
  • ‘;
    ?>

Nič preveč pretresljivega tam. Opazite kul get_avatar () funkcija, ki vam bo dal Gravatar vsem, katerih e-poštni naslov ste navedli. V tem primeru pridobimo sliko avatarja z uporabo e-poštnega naslova komentatorja. Rezultat, podoben tistemu, ki ga imamo pri zadnjih komentarjih, lahko dobimo takšen rezultat:

# cc-top-commenters li {
širina: 100%;
plovec: levo;
seznam-style-type: noben;
}

# cc-top-commenters li img {
plovec: levo;
zgornja meja: -5px;
}

Seznam najboljših komentatorjev

Zadnji je Najbolj komentirane objave:

Najbolj komentirane objave

    $ sql = "IZBERI p. *, C.comment_count OD $ wpdb->posts p INNER JOIN (IZBERI comment_post_id, štej (comment_ID) kot comment_count od $ wpdb->komentarji KJE comment_approved = ‘1’ SKUPINA PO comment_post_id) c ON (c.comment_post_id = p.ID) NAROČI PO c.comment_count DESC LIMIT $ max";
    $ results = $ wpdb->get_results ($ sql);

    $ template = ‘% pt (% c komentarjev) “;

    $ odmevalo = 0;
    foreach ($ rezultati kot $ row) {
    $ tags = matrika (‘% pd’, ‘% pt’, ‘% pu’, ‘% c’);
    $ substitutions = matrika ($ vrstica->post_date, $ vrstica->post_title, get_permalink ($ vrstica->ID), $ vrstica->komentar_broj);
    odmev ‘

  • ‘. str_replace ($ oznake, $ substitutions, $ template). ‘
  • ‘;
    $ odmevalo = 1;
    }
    če ($ odmeva == 0)
    odmev ‘

  • Komentarja ni bilo mogoče najti.
  • ‘;
    ?>

Seznam najbolj komentiranih objav

In to je to. Nato bomo dodali nekaj hladnosti z dodajanjem nekaterih stvari, ki jih lahko vidi le skrbnik.

Informacije samo za skrbnike

Če želite prikazati stvari samo za skrbnike, lahko uporabimo ta delček kode od WPCandy:

<?php
globalni $ user_ID;
če ($ user_ID):
če (trenutni_user_can (‘nivo_10’)):
// Tukaj so samo admin.
endif;
endif; ?>

Zdaj na nadzorni plošči na kratko pogledamo skupno število, odobreno, čakanje na pregled in neželene komentarje. Ponovimo to za našo predlogo strani za lažji dostop samo za skrbnike:

<?php
$ num_comm = wp_count_comments ();
?>
Skupaj komentarjev: /wp-admin/edit-comments.php? “><?php odmeva $ num_comm->skupno_ komentarji; ?>
Odobreno: /wp-admin/edit-comments.php?comment_status=approved “><?php odmeva $ num_comm->odobreno; ?>
Moderirano: /wp-admin/edit-comments.php?comment_status=moderated “><?php odmeva $ num_comm->moderirano; ?>
Nezaželena pošta: /wp-admin/edit-comments.php?comment_status=spam “><?php odmeva $ num_comm->nezaželena pošta; ?>

Administrator

wp_count_comments () je čedna funkcija, ki vrne niz različnih številk statičnih komentarjev. Tudi povezave do ustreznega področja upravljanja komentarjev dodajamo.

Dodajanje nekaterih iskric

Nazadnje, recimo, da najdete kul vtičnike, povezane s komentarji, ki jih želite vključiti v to predlogo strani. Namesto da dodate več kod, naj le dodamo podporo za to. Za ta primer bom šel Aktivnosti Iskrice vtičnik, ki lahko na stranski vrstici “prikaže graf s slogom iskrive”, prikazuje aktivnost objave in / ali komentarja. ”Zveni se mi super.

Običajno vas bo datoteka readme.txt vtičnika naučila, kako jo dodati v svoje tematske datoteke. V našem primeru je koda lahko takšna:

<?php
if (function_exists (‘activitysparks’)) {
Activitysparks (matrika (‘nabor podatkov’ =>’legenda’, ‘height_px’ =>100, ‘width_px’ =>600, ‘obdobje’ =>30, ‘klopi’ =>24));
}
?>

Vtičnik ActivitySparks

function_exists () preveri, ali je določena funkcija na voljo; v našem primeru deluje aktivnost Sparks, ki bo na voljo, če je vtičnik naložen in aktiviran. Če je tam, pokažemo graf. Če ne, potem naša predloga strani ne bo prikazala ničesar (vendar bo še vedno v redu, brez napak).

Rezultat in primer

Primer te predloge strani je na voljo tukaj. Kode, ki jih vidite tukaj, uporablja z nekaj spremembami, večinoma zato, da ohrani skladnost strukture HTML s preostalim spletnim mestom. Celotna koda za to predlogo strani je na voljo na Pastebin.

Zasluge in nadaljnja branja

  • Kode, uporabljene za prikaz različnih nedavnih in najboljših komentarjev, so vzete Remx komentarja WP vključiti. Oglejte si njegovo kodo, če želite izvedeti več stvari glede komentarjev, na primer izključiti skrbniške komentarje najboljših komentatorjev ali kako upoštevati samo nedavne komentarje. Predlogo $, ki jo uporabljamo za oblikovanje izhoda, lahko na tej strani izvemo več.
  • Ustvarjanje predloge lastne strani v kodeksu WordPress.
  • Prikaz vadbe o vsebini samo za skrbnika 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