• soplica

    (@soplica)


    Jest to zapewne bardzo użyteczny plugin. Niemniej dla takiego początkującego jak ja, każdy plugin który wymaga zabawy z kodem (dla mnie to raczej udręki ) jest dość trudny do opanowania. W internecie udało mi się znaleźć masę poradników , ale stosując się do nich po dwóch dniach pracy jestem w punkcie wyjścia. Utworzyłem grupę pól, ale nie wiem jaki kod i gdzie mam go wkleić. Prosił bym o jakąś podpowiedź. Szablon którym się posługuję został stworzony w Arteesterze. Z tego co czytałem na forach generuje on dość specyficzny kod. Być może właśnie w tym tkwi problem. Czy mógłbym liczyć na jakąś pomoc. Na forach odpowiedź zazwyczaj jest odmowna, lub bardzo lakoniczna w formie wklej taki to a taki kod. Ok, ale gdzie, w jakim pliku , w jakim miejscu? Z góry dziękuję za odpowiedź.

Viewing 11 replies - 1 through 11 (of 11 total)
  • Moderator Krzysiek Dróżdż

    (@drozdz)

    OK, mam nadzieję, że nie będzie zbyt lakonicznie 😉

    Przede wszystkim napisz, o jaki dokładnie plugin Ci chodzi. Napisz też, jak chcesz go wykorzystać, to postaram się pomóc krok po kroku.

    Twórca wątku soplica

    (@soplica)

    Naprawdę bardzo się cieszę , że ktoś ma chęci mi pomóc . Dziś od rana znowu próbowałem , ale dla mnie to jednak czarna magia, a szkoda bo to fajna umiejętność. Trochę projektuję grafikę , ale raczej na użytek znajomych , zdecydowanie hobbystycznie. Ale do rzeczy, to link do mojego szablony stworzonego w programie Artesteer . http://photoshop.mixxt.pl/networks/files/download.135470
    to są screeny moich pól które chciałbym , żeby wyświetlały się w treści postu, a w tym przypadku zamiast niego . jest to jakiś tam rodzaj formularza – oferty. W pluginie Advanced Custom Fields stworzyłem grupę pól o nazwie „ogloszenie”. Grupa ta składa się z 12 pól – 10 tekst, jedno obszar tekstowy i jedno pole daty . Chcąc napisać post będę korzystał wyłącznie z tego formularza pomiajając zupełnie edytor wordpressa. Po utworzeniu tej grupy , gdy przechodzę do zakładki dodaj nowy post, formularz wyświetla mi się na dole pod edytorem wordpressa co jest normalne. Niestety wypełniając formularz i publikując stronę , nic się na niej nie ukazuje. Zacząłem googlić , wklejać kody w różne miejsca, ale to wszystko mnie trochę przerosło. Ponieważ ACF posiada moduł eksportu , wyeksportowałem kod php , który podobno ma być wklejony do funkcions.php, ale wyskakuje mi błąd i strona wogóle nie pojawia się w przeglądarce.
    To link do wygenerowanego kodu i legendy jego użycia, oraz screeny tego co już zrobiłem : http://photoshop.mixxt.pl/networks/files/download.135471
    Domyślam się , że utworzyłem już prawidłowo tą grupę pól. Interesuje mnie jak dodać je jednak do mojego tematu na stałe tak, aby wyświetlała się w polu posta. Z góry naprawdę bardzo serdecznie dziękuję za pomoc. Piotr

    Moderator Krzysiek Dróżdż

    (@drozdz)

    OK, więc po kolei:

    1. Grupę pól masz zrobioną w miarę sensownie. Jedyna uwaga tutaj jest taka, że pole „opis” trzymałbym mimo wszystko w WordPressowym edytorze – dzięki temu sporo zyskasz za darmo (wyszukiwanie, excerpty, podobne wpisy, itd.)

    2. Ten „export”, który zrobiłeś i możesz wkleić do functions.php, robi zupełnie co innego, niż byś oczekiwał. On służy do tego, żebyś mógł w motywie zdefiniować od razu dane grupy pól. Nie będzie wstawiał tych pól w treść wpisu.

    3. Aby wyświetlić te pola we wpisie musisz zmodyfikować szablon odpowiedzialny za wyświetlanie danej strony (jeśli np. pola mają się wyświetlać we wpisach, to modyfikuj single.php, jeśli w stronach, to page.php, itd., jeśli tylko w niektórych wpisach/stronach, to odpowiedni szablon zgodnie z Template Hierarchy)

    Moderator Krzysiek Dróżdż

    (@drozdz)

    A, no i najważniejsze…

    Zawartość pól możesz wyświetlać za pomocą funkcji dostarczonych z ACF lub też zwykłym WordPressowym get_post_meta.

    Twórca wątku soplica

    (@soplica)

    Chcę żeby pola wyświetlały mi się w poście , czyli modyfikacji podlegałby single.php to jest dla mnie jasne. Ale co i gdzie konkretnie mam wkleić , jest już dla mnie zagadką. O jakich funkcjach ACF piszesz ? Próbowałem get_post_meta , ale wtedy wyskakuje błąd i strona się nie wyświetla. Dla mnie trzeba niestety trochę jaśniej, tak jak to napisałeś „to postaram się pomóc krok po kroku”.

    Moderator Krzysiek Dróżdż

    (@drozdz)

    Hehe, nie ma sprawy. No to krok po kroku.

    Możesz korzystać z ACFowej funkcji the_field, czyli np. w pliku single.php w odpowiednim miejscu wstawiasz:

    <?php the_field('moje_pole'); ?>

    Albo też z WordPressowych funkcji (tu będzie trochę trudniej od strony programistycznej, bo musisz pamiętać o escape’owaniu, odpowiednim zczytywaniu wartości, itd. To robisz np. tak:

    <?php echo get_post_meta($post->ID, 'moje_pole’, true); ?>

    Oczywiście w obu przykładach moje_pole to nazwa pola (ta skrócona, a nie etykieta).

    Twórca wątku soplica

    (@soplica)

    Po części udało mi się wyświetlić moje pola , ale nie wyświetlają się one w polu wpisu tylko poniżej. w żaden sposób nie mogę ich umieścić w kodzie tak aby wyświetlały się w ramce wpisu. Gdybym posłużył się którym którymkolwiek podam p[rzez ciebie kodem, musiałbym wstawić go w pętlę strony , a to powoduje błąd. Może jakaś podpowiedź.
    Obecnie moje single.php wygląda następująco:
    <?php

    /**
    *
    * single.php
    *
    * The single post template. Used when a single post is queried.
    *
    */

    get_header(); ?>
    <div class=”layout-wrapper”>
    <div class=”content-layout”>
    <div class=”content-layout-row”>
    <div class=”layout-cell content”>
    <?php get_sidebar(’top’); ?>
    <span style=”font-size: large;”>POSZUKUJEMY PRACOWNIKA NA STANOWISKO:</span>
    <?php
    if (have_posts()){
    /* Display navigation to next/previous posts when applicable */
    if (theme_get_option(’theme_top_single_navigation’)) {
    theme_page_navigation(
    array(
    'next_link’ => theme_get_previous_post_link(’« %link’),
    'prev_link’ => theme_get_next_post_link(’%link »’)
    )
    );
    }

    while (have_posts())
    {
    the_post();
    get_template_part(’content’, 'single’);
    /* Display comments */
    if ( theme_get_option(’theme_allow_comments’)) {
    comments_template();
    }
    }

    /* Display navigation to next/previous posts when applicable */
    if (theme_get_option(’theme_bottom_single_navigation’)) {
    theme_page_navigation(
    array(
    'next_link’ => theme_get_previous_post_link(’« %link’),
    'prev_link’ => theme_get_next_post_link(’%link »’)
    )
    );
    }

    } else {

    theme_404_content();

    }
    ?>

    <?php the_field(’Zawód’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Kraj zatrudnienia:
    <?php the_field(’kraj_zatrudnienia’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Opis stanowiska pracy:
    <?php the_field(’opis_stanowiska_pracy’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <span style=”font-size: large;”>Wymagania</span>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Wykształcenie:
    <?php the_field(’wyksztalcenie’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Doświadczenie w zawodzie:
    <?php the_field(’doswiadczenie_w_zawodzie’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Wymagana znajomość języka:
    <?php the_field(’Wymagana_znajomosc_jezyka’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Dodatkowe atuty:
    <?php the_field(’dodatkowe_atuty’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    CV w języku:
    <?php the_field(’CV_w_języku’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <span style=”font-size: large;”>Wybranym kandydatom oferujemy</span>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>

    <?php the_field(’opis’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Wynagrodzenie:
    <?php the_field(’wynagrodzenie’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Termin rozpoczęcia pracy:
    <?php the_field(’termin_rozpoczecia_pracy’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Okres zatrudnienia:
    <?php the_field(’okres_zatrudniena’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————
    <div class=”cleared”></div>
    Oferta ważna do:
    <?php the_field(’oferta_wazna_do’); ?>
    <div class=”cleared”></div>
    ————————————————————————————————————————————

    <div class=”cleared”></div>

    <?php get_sidebar(’bottom’); ?>
    <div class=”cleared”></div>
    </div>
    <div class=”layout-cell sidebar1″>
    <?php get_sidebar(’default’); ?>
    <div class=”cleared”></div>
    </div>
    </div>
    </div>
    </div>
    <div class=”cleared”></div>
    <?php get_footer(); ?>

    Twórca wątku soplica

    (@soplica)

    <?php 
    
    /**
     *
     * single.php
     *
     * The single post template. Used when a single post is queried.
     *
     */	
    
    get_header(); ?>
    <div class="layout-wrapper">
        <div class="content-layout">
            <div class="content-layout-row">
                <div class="layout-cell content">
    			<?php get_sidebar('top');  ?>
    			<span style="font-size: large;"><strong>POSZUKUJEMY PRACOWNIKA NA STANOWISKO:</strong></span>
    			<?php
    				if (have_posts()){
    					/* Display navigation to next/previous posts when applicable */
    					if (theme_get_option('theme_top_single_navigation')) {
    						theme_page_navigation(
    							array(
    								'next_link' => theme_get_previous_post_link('&laquo; %link'),
    								'prev_link' => theme_get_next_post_link('%link &raquo;')
    							)
    						);
    					}
    
    					while (have_posts())
    					{
    						the_post();
    						get_template_part('content', 'single');
    						/* Display comments */
    						if ( theme_get_option('theme_allow_comments')) {
    							comments_template();
    						}
    					}
    
    					/* Display navigation to next/previous posts when applicable */
    					if (theme_get_option('theme_bottom_single_navigation')) {
    						theme_page_navigation(
    							array(
    								'next_link' => theme_get_previous_post_link('&laquo; %link'),
    								'prev_link' => theme_get_next_post_link('%link &raquo;')
    							)
    						);
    					}
    
    				} else {    
    
    					theme_404_content();
    
    				}
    			?>
    
    			<?php the_field('Zawód'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Kraj zatrudnienia: </strong>
    			<?php the_field('kraj_zatrudnienia'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Opis stanowiska pracy: </strong>
    			<?php the_field('opis_stanowiska_pracy'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<span style="font-size: large;"><strong>Wymagania</strong></span>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Wykształcenie: </strong>
    			<?php the_field('wyksztalcenie'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Doświadczenie w zawodzie: </strong>
    			<?php the_field('doswiadczenie_w_zawodzie'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Wymagana znajomość języka: </strong>
    			<?php the_field('Wymagana_znajomosc_jezyka'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Dodatkowe atuty: </strong>
    			<?php the_field('dodatkowe_atuty'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>CV w języku: </strong>
    			<?php the_field('CV_w_języku'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<span style="font-size: large;"><strong>Wybranym kandydatom oferujemy</strong></span>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong></strong>
    			<?php the_field('opis'); ?>
    			<div class="cleared"></div>
    		    ------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Wynagrodzenie:</strong>
    			<?php the_field('wynagrodzenie'); ?>
    			<div class="cleared"></div>
    		    ------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Termin rozpoczęcia pracy: </strong>
    			<?php the_field('termin_rozpoczecia_pracy'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Okres zatrudnienia: </strong>
    			<?php the_field('okres_zatrudniena'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    			<div class="cleared"></div>
    			<strong>Oferta ważna do: </strong>
    			<?php the_field('oferta_wazna_do'); ?>
    			<div class="cleared"></div>
    			------------------------------------------------------------------------------------------------------------------------------------
    
    			<div class="cleared"></div>
    
    			<?php get_sidebar('bottom'); ?>
                  <div class="cleared"></div>
                </div>
                <div class="layout-cell sidebar1">
                  <?php get_sidebar('default'); ?>
                  <div class="cleared"></div>
                </div>
            </div>
        </div>
    </div>
    <div class="cleared"></div>
    <?php get_footer(); ?>
    Moderator Marcin Pietrzak

    (@iworks)

    Czy możesz wkleić ten kod zgodnie z zasadami?

    Jak należy wklejać? Posting Code

    Twórca wątku soplica

    (@soplica)

    Po kolei. Jaki błąd powoduje wklejenie tego kodu w pętlę strony?

    Czy na pewno wklejasz ten kod prawidłowo? (Np. nie zagnieżdżasz tagów otwierających i zamykających php?)

    Spokojnie możesz zrobić coś takiego:

    while ( have_posts() ) {
      the_post();
      get_template_part('content', 'single');
    
      echo '<strong>Zawód: </strong>';
      the_field('Zawód');
      echo '<div class="cleared"></div>';
    
      echo '<strong>Kraj zatrudnienia: </strong>';
      the_field('kraj_zatrudnienia');
      echo '<div class="cleared"></div>';
    
      // itd...
    
      /* Display comments */
      if ( theme_get_option('theme_allow_comments')) {
        comments_template();
      }
    }

    PS. Unikałbym, natomiast tego rozdzielania pól za pomocą minusów. Od tego jest <hr /> chociażby… A zawsze można też CSSem border ustawić.

Viewing 11 replies - 1 through 11 (of 11 total)
  • Temat ‘custom fields’ jest zamknięty na nowe odpowiedzi.