Laiks pievienot komentāru komentāra atbildi. WordPress komentāri – pilnīgs izskata dizains

WordPress ir vairāku veidu saturs, piemēram, ziņas, lapas, komentāri. WordPress ir ļoti elastīga platforma, kas ļauj pielāgot pamata saturu savai vietnei. Varat mainīt izskatu un funkcionalitāti. Šajā apmācībā mēs parādīsim, kā mainīt komentāru uzvedību un izskatu WordPress vietnē.

1. darbība. Funkcijas comment_form un tās argumentu izpratne

Apskatīsim WordPress komentāru_formas funkciju. Tā ir atbildīga par komentāru veidlapas rādīšanu, kas parādās lapā vai ziņā. Šīs funkcijas izsaukums galvenokārt ir atrodams motīva mapē esošajā failā comments.php. Šis fails ir iekļauts dažādās vietās, piemēram, failos single.php un page.php, tieši vai izmantojot funkcijas comments_template izsaukumu.

Funkcijas apraksts ir atrodams WordPress kodeksā.

Ja veidlapas parādīšanai izmantojat funkciju comment_form, tā tiks renderēta, izmantojot noklusējuma parametrus, un tajā būs tādi lauki kā vārds, e-pasts (abi lauki ir obligāti), vietne un komentāra saturs. Noklusējuma Twenty Eleven motīvā veidlapa izskatīsies šādi.

Daži svarīgi argumenti funkcijai comment_form:

  • lauki — to var izmantot, lai kontrolētu lauku attēlojumu komentāru veidlapā.
  • comment_notes_before un comment_notes_after — izmanto, lai parādītu informāciju pirms un pēc veidlapas.
  • title_reply — izmanto, lai mainītu atbildes nosaukumu, kura noklusējuma vērtība ir “Atstāt atbildi”.
  • label_submit — izmanto, lai mainītu komentāru iesniegšanas pogas tekstu.
2. darbība. Pielāgojiet komentāru veidlapu, izmantojot funkciju comment_form

Tagad iestatīsim komentāru veidlapu, nosūtot argumentus funkcijai comment_form.

Ja mums ir jāpielāgo komentāra veidlapas lauki, mums ir jānodod to saraksts funkcijai comment_form. Pēc noklusējuma funkcija izmanto šādu lauku sarakstu:

$fields = array("autors" => "

" . "" . __("Vārds") . " " . ($req ? "*" : "") . "

", "e-pasts" => " ", "url" => "

" . __("Tīmekļa vietne") . "" . "

",);

Ja mums ir jānoņem lauks, piemēram, vietne , mums tas vienkārši jāizslēdz no masīva un jānodod masīvs funkcijai comment_form.

$komentētājs = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("autors" => "

" . "" . __("Vārds") . " " . ($req ? "*" : "") . "

", "e-pasts" => " ",); $komentāri_args = masīvs("lauki" => $lauki); komentāru_veidlapa($komentāri_args);

Turklāt mēs mainīsim arī veidlapas nosaukumu uz “Lūdzu, sniedziet mums savu vērtīgo komentāru” un uzrakstu uz pogas uz “Sūtīt manu komentāru”.

Lai pabeigtu uzdevumu, funkcijai comment_form nododam šādus argumentus:

$komentētājs = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("autors" => "

" . "" . __("Vārds") . " " . ($req ? "*" : "") . "

", "e-pasts" => " ",); $comments_args = array("fields" => $fields, "title_reply"=>"Lūdzu, sniedziet mums savu vērtīgo komentāru", "label_submit" => "Sūtīt manu komentāru"); comment_form($comments_args);

Tagad komentāru veidlapa izskatīsies šādi:

3. darbība. Lauku noņemšana no veidlapas, izmantojot āķi

Arī WordPress komentāru veidlapu var modificēt, izmantojot āķus un filtrus. Šis iestatījums var būt īpaši noderīgs, strādājot ar spraudni, kad ir jāpielāgo vairāki elementi, bet nav jāmaina motīvu faili. Filtrs lauku pievienošanai vai noņemšanai no veidlapas — ‘ comment_form_default_fields’

Noņemsim URL lauku, izmantojot filtru. Iepriekš minēto kodu var izmantot spraudnī vai aktīvās tēmas failā functions.php.

Funkcija remove_comment_fields($fields) ( unset($fields["url"]); return $fields; ) add_filter("comment_form_default_fields","remove_comment_fields");

4. darbība. Pievienojiet datus komentāru veidlapai, izmantojot āķi

Mēs varam pievienot veidlapai laukus, izmantojot filtru “comment_form_default_fields”. Pievienosim autora vecuma lauku izmantojot filtru un saglabāsim šo lauku ar papildus datiem un attēlosim komentārā.

Pievienojiet šādu lauku:

Funkcija add_comment_fields($fields) ( $fields["age"] = "

" . __("Vecums") . "" . "

"; atgriezties $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

#respond .comment-form-author label, #spond .comment-form-email label, #respond .comment-form-url label, #respond .comment-form-age label, #respond .comment-form-comment label ( fons: #eee; -webkit-box-shadow: 1px 2px rgba (204,204,204,0,8) - moz-box-shadow: 1px 2px rgba(204,204,0,5 color: 0.8); : 13 pikseļi; minimālais platums: 4 pikseļi 10 pikseļi;

Tagad mūsu komentāru veidlapa izskatīsies šādi:

Vecums tagad tiek saglabāts kā papildu informācija. Jums ir jāizmanto āķis sadaļā “comment_post”:

Funkcija add_comment_meta_values($comment_id) ( if(isset($_POST["vecums"])) ( $age = wp_filter_nohtml_kses($_POST["vecums"]); add_comment_meta($komentāra_id, "vecums", $vecums, false); ) ) add_action("comment_post", "add_comment_meta_values", 1);

Kad dati ir saglabāti, tos var izvadīt kā komentāru šādi:

5. darbība. Komentāru iestatīšana konkrētiem ziņu veidiem

Dažreiz komentāru laukus vēlaties izmantot tikai noteikta veida ziņām. Mainīsim kodu, lai vecuma lauks tiktu rādīts tikai grāmatas ieraksta veidam:

Funkcija add_comment_fields($fields) ( if(is_singular("books")) ( $fields["age"] = "

" . __("Vecums") . "" . "

"; ) return $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

6. darbība. Izveidojiet atzvanīšanas funkciju, lai parādītu komentārus

Funkcija wp_list_comments tiek izmantota, lai parādītu komentārus par ziņām. WordPress kodā funkcija ir sīki aprakstīta.

wp_list_comments ir "atzvanīšanas" arguments, kurā varat definēt funkciju, kas tiek izsaukta, kad tiek parādīts komentārs.

Twenty Eleven tēmā comments.php failā varat atrast rindiņu:

Wp_list_comments(array("atzvanīšana" => "twentyeleven_comment"));

Mainīsim to uz:

Wp_list_comments(array("atzvanīšana" => "my_comments_callback"));

Funkcija my_comments_callback tiks izsaukta katrai ziņai.

7. darbība: komentāru veidošana

Tagad mēs nedaudz mainīsim komentāru stilu. Mēs vienkārši parādīsim ziņas saturu un vecuma lauku, ko pievienojām iepriekš. Mainīsim arī komentāru fona krāsu.

Funkcijas kods “my_comments_callback”:

Funkcija my_comments_callback($komentārs, $args, $dziļums) ( $GLOBALS["komentārs"] = $komentārs; ?>

Funkcijas comments_template() un citu rakstā minēto aprakstu un pieņemtos argumentus meklējiet WordPress kodeksā.

Veidnes sagatavošana

Mēģināsim izprast WP komentāru veidnes un izveidot savu failu komentāru parādīšanai emuāra ierakstos un lapās. Kā atsauces piemērus varat ņemt veidnes no standarta WordPress motīviem. Izveidosim jaunu dokumentu jebkurā teksta redaktorā, nosauksim to par comments.php un sāksim rediģēt.

  • Principā jūs varat nosaukt failu kā vēlaties, un pēc tam ierakstiet ceļu uz šo failu komentāros_template(), bet labāk ir pieturēties pie standarta nosaukuma
  • Starp citu, failu var rediģēt arī WP administratora panelī.
  • Vislabāk, protams, ir uzrakstīt kodu un nekavējoties pārbaudīt tā ietekmi savā emuārā vai vietējā serverī.

WordPress ir iespējams atspējot komentārus atsevišķām ziņām, tāpēc pirms to parādīšanas ir jāpārbauda, ​​vai tie nav atvērti:

Šis ir iesaiņojuma kods mūsu turpmākajām darbībām. Tagad sagatavosim konteineru komentāru blokam ar semantiski pareizu klasi vai identifikatoru (klase, protams, ir vēlama):

Mēs ierakstīsim virsrakstu, lai jūsu lasītāji saprastu, ka šeit ir komentāri un nekas cits, tags būs piemērots šim:

"

Šeit esam norādījuši vienu no WordPress funkcijām - the_title(), šīs funkcijas izpildes rezultāts būs pašreizējā ieraksta vai lapas nosaukuma izvade. Ja nevēlaties rādīt nosaukumu, varat vienkārši ierakstīt “Lasītāju komentāri”.

Tālāk pirms komentāru parādīšanas ir jāpārliecinās, ka tie eksistē, t.i. pārbaudiet, ja ir, parādiet pilnu sarakstu, ja nē, tad varat parādīt lietotājam kaut ko līdzīgu "". Tādā veidā tava ieraksta/lapas apmeklētājam būs skaidrs, ka neviens vēl neko nav uzrakstījis, un motivējošā frāze “Tu vari būt pirmais” palielinās varbūtību, ka viņi tev kaut ko uzrakstīs ātrāk.

Tātad pēc šīs problēmas formulēšanas kļūst skaidrs, ka ieviešanai mums būs nepieciešamas if/else konstrukcijas un funkcija komentāru skaita attēlošanai get_comments_number() . Ja funkcija atgriež 0 (nulle), tiek parādīts "Vēl nav komentāru...", pretējā gadījumā "Lasītāju komentāri...":

Komentāru vēl nav, bet jūs varat būt pirmais lasītāju komentārs par rakstu "" Šīs lapas diskusijas ir slēgtas

Komentāru izdošana

Lieliski, mēs esam parādījuši galvenes atkarībā no komentāru esamības vai neesamības, tagad ir loģiski parādīt pašus komentārus - par to ir atbildīga funkcija wp_list_comments(). Noklusējuma funkcija visus komentārus iesaiņo tagos

  • , tāpēc jums vajadzētu pievienot iesaiņojumu ar klases assignment.commentlist:

    wp_list_comments() izmanto argumentu masīvu, ko var izmantot, lai elastīgi pielāgotu komentāru parādīšanu. Piemēram, varat mainīt iemiesojuma izmēru, komentāru atbildes tekstu un citus iestatījumus, nosūtot atslēgvārdu un vērtību:

    $args = array("avatar_size" => 64, // iemiesojuma izmērs 64*64px, noklusējuma 32 "reply_text" => "Atbildēt" // atbildes teksts uz komentāru "callback" => "my_comments" // funkcija ārēja veida komentāra ģenerēšanai)

    Īpaša uzmanība ir jāpievērš atzvanīšanas parametram, kas komentāra parādīšanai izmanto pielāgotas funkcijas nosaukuma vērtību. Ar tās palīdzību jūs varat elastīgi pielāgot katra komentāra izskatu. Šādi izskatās standarta izvades funkcija no faila comment-template.php:




     

    Varētu būt noderīgi izlasīt: