Kā tikt vaļā no e-pasta lauka Wordpress komentēšanas formā (papildināts)
25. September, 2008, 12:54 UncategorizedMan pašam nepatīk, un zinu, ka citiem arī ne īpaši patīk rakstīt savu e-pastu visādās komentēšanas formās visādos blogos, tāpēc jau labu laiku centos atrast kādu “smuku” veidu, kā šo lauku šeit iekš apblog.lv padarīt ne-obligātu. Vēl aizvien nesaprotu, kāpēc šāda iespēja jau nav iebūvēta Wordpress’ā. Kā arī gūglējot nekur neko nevar atrast, kur būtu pastāstīts kā padarīt šo lauku ne-obligātu. Laikam visiem vienalga. :)
Ja arī vispār gribam atbrīvoties no šī lauka, tad ar vienkāršu izdzēšanu no templeita nepietiek. Tā kā lauks ir obligāts, tad notiek papildus pārbaudes pie submitēšanas. Tāpēc tādā gadījumā komentēt vispār vairs nav iespējams.
Šodien, kad izteicu savu sāpi iekš #php.lv, x-f izteica ģeniāli vienkāršu risinājumu, par kuru nez kāpēc vispār nevienu reizi neiedomājos - vienkārši jāpadara komentāra lauks neredzams, un jānorāda tam kaut kāda noklusēta vērtība:
<input type="hidden" name="email" value="example@example.com" />
Tas arī viss.
PAPILDINĀJUMS
Tā, ņemot vērā komentārus, apdomājos un izdomāju, ka tomēr jāizdomā universālāks veids. Nedaudz papētot Wordpress kodu, atklājās, ka tas ir nedaudz mazāk samudrīts nekā tas kādreiz bija. Tagad veikt vajadzīgo modifikāciju bija tīrais nieks.
Sava bloga sākumdirektorijā atrodam wp-comments-post.php failu. Atveram.
Nedaudz zemāk kodā sameklējam aptuveni šādu koda bloku (apt. pēc 50. rindiņas):
if ( get_option('require_name_email') && !$user->ID ) {
if ( 6 > strlen($comment_author_email) || '' == $comment_author )
wp_die( __('Error: please fill the required fields (name, email).') );
elseif ( !is_email($comment_author_email))
wp_die( __('Error: please enter a valid email address.') );
}
To visu nomainam uz šādu:
if ( !$user->ID ) {
if ( $comment_author == '' )
wp_die( __('Error: please fill the required fields (name).') );
elseif ($comment_author_email != '' && !is_email($comment_author_email))
wp_die( __('Error: please enter a valid email address.') );
}
Atcerieties, vairs netiks ņemts vērā uzstādījumos norādītais “Comment author must fill out name and e-mail” parametrs. Vārds vienmēr būs obligāts, bet e-pasts - neobligāts.
Protams, komentēšanas templeitā arī vajag veikt attiecīgās izmaiņas, lai nerāda “obligāts” pie e-pasta lauka.
Jāatceras arī, ka atjaunojot Wordpress versiju, šis fails visticamāk tiks pārrakstīts ar oriģinālo versiju, tātad modifikācija pazudīs.


25. September, 2008, 13:18
:) jauki, tikko atbrīvojos no epasta lauka
25. September, 2008, 13:25
Ja administācijas panelī atslēdzot “Comment author must fill out name and e-mail” un izdzēšos ārā no komentāra formas e-pasta lauku nevarēs dabūt līdzīgu efektu?
25. September, 2008, 13:28
Mfz, laikam jau varēs, bet tomēr tad arī “name” nebūs obligāts.
25. September, 2008, 13:36
A ja es Tev vēlos atstāt savu e-pastu ;( Jāraud?
25. September, 2008, 13:38
Tīri teorētiski ja spamboti nemaz neiedziļinās tavas lapas HTML kodā, tad var gadīties, ka gadījumā, ja atsūtītais epasts nav example@example.com, tad tas nozīmē, ka uzdarbojas spambots. Sīkums, bet varētu būt interesanta nianse tiem, kas domā, kā cīnīties ar spamu.
No otras puses novācot e-pasta adresi zūd piesaiste gravatar, ko diezgan daudzi blogi izmanto.
25. September, 2008, 13:41
Un ja es veelos sanjemt jaunaakos komentaarus e=pastaa, vai taadaa veidaa ciiniites ar spamiem, utt? Varadsakot - ir vietas, kur tas der, ir vietas kur labaak atstaat iespeeju atstaat savu e-pastu (un es bez probleemaam saveejo atstaaju visur kur komenteeju). Driiizaak besii taas lapas, kuraas komenteejot tu noraadi savas lapas adresi, bet taa netiek paraadiita (vai pat nav iespeejas paaradiit). Es gan domaaju tieshi nevis atbriivoties, bet padariit e-pasta uzraadiishanu obligaatu (kas jau ir defoltaa, vispaar). Jo, ja taa padomaa - tur jau var taa pat raxtiit ko veelies :)
25. September, 2008, 13:45
Var ari php skriptaa izdzeest to epasta pieprasisanas rindu.
25. September, 2008, 13:47
par gravatar es galīgi aizmirsu, hmm, šis variants tad man neder.
25. September, 2008, 13:49
Artur, ja man būtu parakstīšanās uz jaunumiem, tad, protams, nedzēstu ārā e-mail lauku. Bet ja nekā tāda nav, tad liela labuma no tā nav. Tikai traucē komentētājiem.
vide, es vienreiz mēģināju iedziļināties Wordpress kodā, lai padarītu šo lauku ne-obligātu, bet pēc ilgas medīšanās tāpat nevarēju tajā makaronkaudzē atrast, kur to izdarīt.
25. September, 2008, 16:22
Andri. A nebija labāk uzrakstīt pluginu, kas pie submitošanas, ja nav norādīts mails, tad automātiski jamo aizpilda? Tad updeiti arī netraucētu ;) Visu var elementāri izdarīt, tikai nedaudz jāpačibinās :D