Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Systemy portalowe i CMS'y _ Wordpress własne pola

Napisany przez: Lelek919 15.02.2017, 09:57:38

Cześć,

chciałbym dowiedzieć się od was w jaki sposób w wordpress mogę przez panel admina wstawić dowolny tekst a następnie w dowolnym miejscu w szablonie wyświetlić tą zawartość.

Korzystając z Joomla robiłem to w ten sposób:
Rozszerzenia -> Moduły - > Utwórz - > HTML -> "Wybierz pozycje" i tu np: user3

a w szablonie umieszczałem kod:

  1. <jdoc:include type="modules" name="user3" />


Dzięki temu co zmieniłem w tym dodatkowym module i zapisałem to wyświetlało się na stronie.


W wordpress istnieje coś takiego jak custom fields(Własne pola) dodaje takie pole pod nowym wpisem lub stroną i następnie próbuję wyświetlić poprzez
  1. <?php http://www.php.net/echo get_post_meta($post->ID, "klucz_taki_jak_wpisze_w_panelu", true);?>


to rozwiązanie działa tylko we wpisie lub w stronie pod którą dodałem to "Własne pole". Jeżeli chcę wstawić takie pole np w stopkę lub top strony rozwiązanie to już nie działa wtedy muszę np omijać to w ten sposób:
  1. <?php http://www.php.net/echo get_post_meta([b]cyfra_konkretnego_wpisu_w_ktorym_jest_dodane_wlasne_pole[/b], "klucz_taki_jak_wpisze_w_panelu", true);?>


Tylko takie rozwiązanie powoduje, że podczas użycia szablonu na innej stronie muszę wszędzie zmieniać ten klucz.

Możecie mi poradzić w jaki sposób mogę dodać własny tekst w panelu admina który będę mógł wyświetlić w DOWOLNYM miejscu szablonu odwołując się np po unikalnej nazwie

Napisany przez: freemp3 15.02.2017, 10:20:27

W wordpress do tego służą widgety:
https://codex.wordpress.org/WordPress_Widgets
https://codex.wordpress.org/Widgets_API
https://codex.wordpress.org/Widgetizing_Themes

Napisany przez: Lelek919 16.02.2017, 07:51:22

Dziękuję za odpowiedź. Interesuje mnie jeszcze jedna rzecz jeżeli dodałem Widget w pliku functions.php

  1.  
  2. register_sidebar(http://www.php.net/array(
  3. 'id' => 'testowy-widget',
  4. 'name' => 'Pola do Szablonu',
  5. 'description' => 'Wszystkie pola w szablonie',
  6. 'before_widget' => '<div id="%1$s" class="widget %2$s">',
  7. 'after_widget' => '</div>',
  8. 'before_title' => '<h3 class="widgettitle">',
  9. 'after_title' => '</h3>',
  10. ));


W Panelu otrzymałem panel z możliwością przeciągnięcia pól np. tekstowych


Czy istnieje możliwość odwołania się do każdego pola tekstowego z osobna ? Czy muszę dla każdego dodawać do pliku functions.php nowy kod z nowym ID

Jest ktoś w stanie się wypowiedzieć ?smile.gif

Napisany przez: freemp3 17.02.2017, 09:48:43

Jest taka możliwość. Podczas wyświetlania widgetów wordpress nadaje im odpowiedni identyfikator i jest on w zmiennej %1$s.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)