Помощ с код в Wordpress - извеждане на събития

Lyuben

New Member
Здравейте, заиграх се да намеря подходящ плъгин за извеждане на събития в сайта, но не попаднах на нищо, което да ми харесва.
Искам страница/категория, в която да излизат престоящи събития под формата на снимка, заглавие и дати. Идеалното би било това: americanmajority.org/events/

Но може би ще ми трябва вариант/плъгин за извеждане на надписите в лента - в wordpress не намерих при търсене на thumbnails captions и т.н., в гугъл има разни плъгини, ама не съм сигурен какви са. Kакто и да е, това не е толкова важно, може и с надписи отдолу.

Не намерих плъгин, но намерих код за тази функция в този пост: problogdesign.com/wordpress/an-updated-wordpress-events-list/
Ето тук е целият код: pastebin.com/HnZymmXw (също и накрая на поста ми).

Кодът би трябвало да извежда събития- само постове с custom field Date, която не е минала и от категория events, т.е. не е необходимо да е създават нови постове, могат да се използват едни и същи само с промяна на полето дата, доколкото разбирам.

Имам следните проблеми:

- Понеже познанията ми по кодове се свеждат до копи-пейст, не знам как да интегрирам кода в темата - предполагам в index темплейта, но бих искал този код да се задейства, само ако се дисплейва дадената категория? Не съм сигурен, как се прави така точно, с if? (В сайта ми (planinski-vodach.com) бих искал тази категория да се появява при Нови предложения, категориите там ползват отделен темплейт - Portfolio)

- Не мога да видя къде в тоя код да сменя името на категорията от events, макар че някой беше написал на линия 12 - не виждам нито id, category, нито events. Всъщност дори не ми е необходимо постовете да са от определена категория, може да са само с попълнен custom field, за да се появяват.

- Ако някой се сеща за по-лесен начин (плъгин), за да направя това, би било чудесно:)

Мерси предварително.

Ето кода:

  1. <ul>
  2. <?php
  3. // Build a custom query to get posts from future dates.
  4. $querystr = "
  5. SELECT wposts.*
  6. FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
  7. WHERE wposts.ID = wpostmeta.post_id
  8. AND wpostmeta.meta_key = 'Date'
  9. AND STR_TO_DATE(wpostmeta.meta_value,'%d/%m/%Y') >= CURDATE()
  10. AND wposts.post_status = 'publish'
  11. AND wposts.post_type = 'post'
  12. ORDER BY STR_TO_DATE(wpostmeta.meta_value,'%d/%m/%Y') ASC
  13. LIMIT 3
  14. ";
  15. $events = $wpdb->get_results($querystr, OBJECT);
  16. if ($events):
  17. foreach ($events as $post):
  18. global $post;
  19. setup_postdata($post); ?>
  20. <li>
  21. Date: <?php echo get_post_meta($post->ID, 'Date', true); ?><br><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
  22. </li>
  23. <?php endforeach;
  24. else : ?>
  25. <li>Sorry, no events coming up.</li>
  26. <?php endif; ?>
  27. </ul>
 
От: Помощ с код в Wordpress - извеждане на събития

Ето тук намерих начин за показване на caption с полупрозрачна лента на тумбнайл-снимките, но нещо не задейства при мен:
dailyblogging.org/wordpress/how-to-add-and-style-post-thumbnails-with-captions-in-wordpress/
Излизат едни много ефектни плъгини в гугъл, някой да е пробвал такъв?
 
От: Помощ с код в Wordpress - извеждане на събития

Щом не си намерил плъгин:

Намери си някой плъгин за custom post types и създай тип Events.
Към тоя тип вероятно ще трябва да се добави custom field за дата - понеже трябва да е статично инфото.
После едно кодче, което да изкарва тия 'ивенти' където трябва.
И най-накрая малко CSS да ги направи да изглеждат както искаш.

Най-добре се спри на плъгин, че това чак докат го писах се усетих че не е лесно.
Самия външен вид ще трябва чрез CSS да се натъкми.
С копи-пейст няма как да стане.

Тоя код долу не ми харесва - нещата не се правят така в Уордпрес.
 
От: Помощ с код в Wordpress - извеждане на събития

Благодаря много за отговора. В крайна сметка се получи каквото исках - вкарах кода в Page Template и му зададох да се появява само на определена страница - Календар. Кодът работи и изкарва постове, на които има зададена дата (бъдеща) чрез custom field. Пробвам с обяснението как се изкарват caption на тумбнайлите и успях да ги изкарам само за определената страница. Единствено засега не успявам да използвам ccs, който би трябвало да ги стилизира и да се показват в полупрозрачна лента? Това е обяснено в този линк: dailyblogging.org/wordpress/how-to-add-and-style-post-thumbnails-with-captions-in-wordpress/. Вкарах кода в края на stylesheet.ccs.

Ето временния резултат: planinski-vodach.com/?page_id=1655
Кодът, който вкарах, за да се показват тумбнайлите е:

<div class="excerpt_thumbnail"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail();
echo '<div class="thumbnail_caption">' .get_post(get_post_thumbnail_id())->post_excerpt.'</div>'; ?></a></div>

Може би има някаква грешка и затова не се стилизрат както би трябвало?
 
От: Помощ с код в Wordpress - извеждане на събития

Да довърша темата, може някой като мен да рови с подобен проблем:

В крайна сметка създадох нов page template и го зададох като темплейт на определената страница (моята тема го позволява, не знам дали важи за всички), която да показва събитията.

Как се създава такъв темплейт е описано тук, лесно е: forums.site5.com/showthread.php?t=32014

После вкарах кода от първия пост във файла на този темплейт - вместо кода, започващ с:

<h1><?php the_title(); ?></h1> и завършващ с <?php endif; ?>

Създадох custom field в постовете - дата, след която те вече не се показват в тази страница.

Кодът за показване на снимките с caption работи, (даден е тук - dailyblogging.org/wordpress/how-to-add-and-style-post-thumbnails-with-captions-in-wordpress/), но при мен трябваше да се нагласи css кода, което един добър човек направи.

Това е...
 

Горе