Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nowicjusz vs. PHP
Forum PHP.pl > Forum > PHP
Merol
Witam, znalazłem darmowy szablon php na Wordpress i zacząłem zabawę próbując dostosować go do swoich potrzeb.

Zacznę od podania linku do mojej strony na testowej domenie: http://agencjafresh.esy.es/
Chciałbym w wyszukiwarce ofert zastąpić "Type, Rooms, Area, Price" innymi słowami, z tym, że Price chciałbym ręcznie wpisywać od / do.

Próbowałem zmienić kolejno "Type" na "Typ transakcji" wszędzie w kodzie, ale wtedy wyszukiwarka się psuła. Być może dlatego, że słowo jest dwuczłonowe, ale nie jestem pewien.

Tak wygląda w tych miejscach kod:
functions.php
  1. function listings_taxonomy() {
  2. register_taxonomy(
  3. 'type',
  4. 'listings',
  5. 'hierarchical' => true,
  6. 'label' => 'Type',
  7. 'query_var' => true,
  8. 'rewrite' => array('slug' => 'type')
  9. )
  10. );

searchs-listings-form-sidebar.php
  1. <div class="sidebar-box search-listings <?php echo (is_page_template('home-page-template.php')) ? 'transp' : '';?>">
  2. <h3>Znajdź swój nowy dom:</h3>
  3. <form method="post" action="<?php bloginfo('url');?>/listing-search-results/">
  4. <div><?php echo buildSelect('type'); ?></div>
  5. <div><?php echo buildSelect('rooms'); ?></div>
  6. <div><?php echo buildSelect('area'); ?></div>
  7. <div><?php echo buildSelect('price'); ?></div>
  8. <div><input type="submit" class="button" /></div>
  9. </form>
  10. <div class="clear"></div>
  11. </div>

searchs-listings-form.php
  1. <div class="twelve columns listing-search">
  2. <h3>Możesz filtrować bazę ofert za pomocą poniższych pól wyboru:</h3>
  3. <div class="search-wrap <?php echo (is_page_template('home-page-template.php')) ? 'transp' : '';?>">
  4. <form method="post" action="<?php bloginfo('url');?>/listing-search-results/">
  5. <div class="two columns"><?php echo buildSelect('type'); ?></div>
  6. <div class="three columns"><?php echo buildSelect('rooms'); ?></div>
  7. <div class="three columns"><?php echo buildSelect('area'); ?></div>
  8. <div class="two columns"><?php echo buildSelect('price'); ?></div>
  9. <div class="two columns"><input type="submit" class="button" /></div>
  10. </form>
  11. </div>
  12. </div>

single-listings.php
  1. <div class="overview">
  2. <h6>Specyfikacja techniczna</h6>
  3. <ul>
  4. <?php echo get_the_term_list( $post->ID, 'type', '<li>Type: ', ', ', '</li>' ); ?>
  5. <?php echo get_the_term_list( $post->ID, 'rooms', '<li>Rooms: ', ', ', '</li>' ); ?>
  6. <?php echo get_the_term_list( $post->ID, 'area', '<li>Area: ', ', ', '</li>' ); ?>
  7. <?php echo get_the_term_list( $post->ID, 'price', '<li>Price: ', ', ', '</li>' ); ?>
  8. <li><a href="#respond">Contact Us</a> regarding this listing</li>
  9. </ul>
  10. </div>
rafalp
Znajdź funkcję buildSelect() i grzeb dalej, te słowa w polu "select" powinny pochodzić z pliku z tłumaczeniem (.mo/.po/.pot)
Merol
Cytat(rafalp @ 3.07.2015, 22:27:36 ) *
Znajdź funkcję buildSelect() i grzeb dalej, te słowa w polu "select" powinny pochodzić z pliku z tłumaczeniem (.mo/.po/.pot)

Bardzo dziękuję za odpowiedź! Niestety, nie było żadnego tłumaczenia, sam wszystko przetłumaczyłem. Tak wygląda funkcja buildSelect(). Jak mam ją zmienić?

function buildSelect($tax){
$terms = get_terms($tax);
$x = '<select name="'. $tax .'">';
$x .= '<option value="">Select '. ucfirst($tax) .'</option>';
foreach ($terms as $term) {
$x .= '<option value="' . $term->slug . '">' . $term->name . '</option>';
}
$x .= '</select>';
return $x;
}
com
to nie bd czasem w get_terms ?

a w single-listings.php to masz w li wpisane przecież to tam możesz sobie zmienić
Merol
Cytat(com @ 3.07.2015, 22:46:21 ) *
to nie bd czasem w get_terms ?

a w single-listings.php to masz w li wpisane przecież to tam możesz sobie zmienić


Również dziękuję za odpowiedź smile.gif. Ten kod w single-listing odpowiedzialny jest za wypisanie kategorii w ogłoszeniu, kiedy się do niego wejdzie pod słowami Specyfikacja techniczna. Aktualnie nie ma nic wypisane, ponieważ ogłoszenie testowe nie jest przypisane do żadnej kategorii. Tutaj link bezpośrednio do ogłoszenia testowego.
http://agencjafresh.esy.es/listing/zielony...mkw-podolszyce/

Nie rozumiem tej wskazówki apropo get_terms. Co dokładniej miałbym z tym zrobić, żeby przypisać tym taxonomies określone nazwy?

//edit
Dodałem kilka taxonomies w ramach specyfikacji technicznej. Ale wolałbym, żeby wartość części z nich była wyświetlana normalnie, a nie jako odnośnik do kategorii. Co zrobić?
rafalp
Cytat(Merol @ 3.07.2015, 22:37:53 ) *
function buildSelect($tax){
$terms = get_terms($tax);
$x = '<select name="'. $tax .'">';
$x .= '<option value="">Select '. ucfirst($tax) .'</option>';
foreach ($terms as $term) {
$x .= '<option value="' . $term->slug . '">' . $term->name . '</option>';
}
$x .= '</select>';
return $x;
}


Jeśli to ta funkcja (bo nie jestem pewien gdyż jest napisane "Select" zamiast "[wybierz]" (?)
ale jeśli tak to 'proteza' będzie taka:

  1. function buildSelect($tax){
  2. $terms = get_terms($tax);
  3. $x = '<select name="'. $tax .'">';
  4.  
  5. $tax_pl = $tax;
  6. if($tax == 'type')
  7. {
  8. $tax_pl = 'typ';
  9. }
  10. if($tax == 'rooms')
  11. {
  12. $tax_pl = 'pokoje';
  13. }
  14. if($tax == 'area')
  15. {
  16. $tax_pl = 'region';
  17. }
  18. if($tax == 'price')
  19. {
  20. $tax_pl = 'cena';
  21. }
  22. // lub IF-ELSE
  23.  
  24.  
  25.  
  26. $x .= '<option value="">Select '. ucfirst($tax_pl) .'</option>';
  27. foreach ($terms as $term) {
  28. $x .= '<option value="' . $term->slug . '">' . $term->name . '</option>';
  29. }
  30. $x .= '</select>';
  31. return $x;
  32. }
Merol
Dziękuję za pomoc Rafał smile.gif! Jesteś wielki! Działa!

Teraz zastanawiam się jak dodać CENĘ pod tytułem oferty w sekcji "Ostatnio Dodane Oferty" na stronie głównej. Czy wystarczy dodać w odpowiednim miejscu?:
  1. <?php echo get_post_meta( $post->ID, 'price', '<li>Cena: ', ', ', '</li>' ); ?>

  1. Tak wygląda home.php w tym fragmencie kodu.
  2. <div class="row">
  3. <h3 id="latest-listings"><span>Ostatnio Dodane Oferty</span></h3>
  4. <?php $the_query = new WP_Query('showposts=3&post_type=listings') ?>
  5. <?php if($the_query->found_posts == 0){
  6. for($i=1; $i<=3; $i++){echo dummy_listings();}
  7. }else{ ?>
  8. <?php while ( $the_query->have_posts() ) : $the_query->the_post();?>
  9. <div class="four columns listing">
  10. <div class="post-container short">
  11. <?php echo has_post_thumbnail() ? my_get_image(true) : my_get_image_blank(true);?>
  12. <h5><a href="<?php the_permalink();?>"><?php the_title();?> </a></h5>
  13. <p>dodano <?php the_time('j F, Y');?><a class="small button" href="<?php the_permalink();?>">&rarr;</a></p>
  14. </div>
  15. </div>
  16. <?php endwhile; wp_reset_postdata();?>
  17. <?php } ?>
  18. </div><!--end row-->
  19. </div><!--end content-->


Dodałem
  1. <?php echo get_the_term_list( $post->ID, 'price', 'Cena: ', ', ', '' ); ?></h5>

I działa. Ale nie chciałbym, żeby to był ODNOŚNIK do kategorii kiedy najedzie się na wartość ceny. Tylko po prostu wypisana wartość... Jak to zrobić?
maniek74
Witam
Przepraszam że się pytam ale po co pchasz się w gotowy szablon. Nie prościej napisać swój od początku. zasady wordpres sa proste:

plik header.php - tutaj piszesz górę strony
pliki page_cos tam.php - strony www
Template Name: home - nazwa szablonu

  1. <?php
  2. /**
  3.  * Template Name: home
  4.  *
  5.  */
  6.  
  7. get_header();
  8.  
  9. ?>
  10. <meta charset="utf-8">


pliki single_coś tam.php - wpisy
[oferta] - nazwa szablonu
  1. <?php
  2. /*
  3. Single Post Template: [oferta]
  4. Description: This part is optional, but helpful for describing the Post Template
  5. */
  6. ?>
  7. <?php get_header(); ?>
  8. <!-- Content start -->
  9.  
  10. <meta charset="utf-8">



wywal wszystko jak leci i dodaj pluginy
Advanced Custom Fields
Page Links To
Single Post Template
TinyMCE Advanced

i to wszystko jeśli znasz trochę php, html i css to dasz radę.

a jeszcze musisz mić plik
functions.php
gdzie sobie piszesz funkcje

np.
  1. <?php
  2. add_action('get_header', 'remove_admin_login_header');
  3. function remove_admin_login_header() {
  4. remove_action('wp_head', '_admin_bar_bump_cb');
  5. }
  6.  
  7. add_theme_support('post-thumbnails');
  8.  
  9.  
  10. function register_my_menus() {
  11. register_nav_menus(array('header-menu-left' => __('Header Menu Left'),
  12. 'header-menu-right' => __('Header Menu Right'),
  13. 'header-menu-mobile' => __('Header Menu Mobile'),
  14. 'footer-menu' => __('Footer Menu')));
  15. }
  16.  
  17. add_action('init', 'register_my_menus');
  18.  
  19. pll_register_string('RECEPCJA', 'text_reception', 'header');
  20. pll_register_string('BIURO', 'text_office', 'header');
  21. pll_register_string('RESTAURACJA', 'text_restaurant', 'header');
  22. pll_register_string('facebook', 'link_facebook', 'header');
  23. pll_register_string('google', 'link_google', 'header');
  24. pll_register_string('youtube', 'link_youtube', 'header');
  25. pll_register_string('twiter', 'link_twiter', 'header');
  26. pll_register_string('instagram', 'link_instagram', 'header');
  27. pll_register_string('skype', 'link_skype', 'header');
  28. pll_register_string('email', 'link_email', 'header');
  29. pll_register_string('ZAREZERWUJ SWÓJ POBYT ONLINE!', 'button_reservation', 'header');
  30. ?>


na prawdę wszystko jest proste jak nie to napisz na pw swój email to dam ci swój i Ci pomogę
Merol
Dziękuję za odpowiedź Maniek smile.gif. W ciągu kilku dni ruszam z działalnością, więc zacznę budować nową stronę w wolnym czasie, ucząc się języków, o których wspominałeś. Póki co muszę się zadowolić tym co mam smile.gif.

Pozostały mi dwa problemy do rozwiązania.

1.
Jak mogę ustawić, żeby CENA w wyszukiwarce ofert nie była polem wyboru tylko, żeby samemu trzeba było wpisać wartość? Chciałbym, żeby te pole, które teraz jest przedzieliło się na dwa o jednakowej wielkości, bo jest tam wystarczająca ilość miejsca, żeby to zrobić. Do tego chciałbym, żeby na tych polach, które stworzymy na jednym pisało ''Cena od'', a na drugim ''Cena do'' i jak się by kliknęło to napis ten by znikał i można byłoby wpisać wartość.

2.
Chciałbym do bloga załączyć przycisk "Czytaj dalej"
maniek74
zainstaluj plugin Advanced Custom Fields będziesz mógł zdefiniować dodatkowe pola do kazdej strony.

Zdefiniowane pole pokazuje <?php echo get_field('nazwa_pola'); ?> lub <?php the_field('nazwa_pola'); ?>
ja stosuje get przy warunkach if a gdy tylko pokazać to the_field

tutaj masz opis
http://www.advancedcustomfields.com/

mapisz jaki rodzaj chcesz czytaj więcej:

A. http://loh-test.pl/mcm/medicine/
B. http://itcompart2.nazwa.pl/borowieckihotel/strona-glowna/ - boxy po prawej


szablon to 2-3 dni pracy pod worpresa, jesli klient mi daje psd to biorę 400 PLN za szablon, rwd 600

Merol
Zdecydowanie A!

Bawię się tym ACF teraz, ale nie za bardzo rozumiem jak mogę stworzyć pola wyszukujące podane wartości zapisane z taxonomies :/.

/edit
Maniek gdybym dysponował jakimikolwiek środkami to na pewno bym zapłacił komuś za zrobienie mi takiej strony na bazie jakiegoś motywu z themeforest, ale niestety nie dysponuje jakąkolwiek wolną gotówką na dzień dzisiejszy, stąd też muszę sobie radzić sam mając nadzieję, że znajdzie się ktoś na tyle miły, żeby troszkę mnie wesprzeć w dziedzinie, o której nie mam zielonego pojęcia tongue.gif.

A więc jak mógłbym zrobić ten readmore z przykładu A i te pola? Pomożecie? Naprawdę staram się szukać na własną rękę, ale to nie takie proste dla kompletnego nowicjusza :/.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.