Úvodní stránka › Fórum podpory WordPressu › Pluginy (funkčnost webu) › Advanced custom fields
Zvolené téma obsahuje celkem 5 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel amcatko a poslední změna je stará 10 let, 6 měsíců.
-
AutorPříspěvky
-
15. srpna 2014 (15:57) #19977
Dobrý den,
nainstalovala jsem si plugin Advanced custom fields a bez problémů jsem si udělala skupiny polí i s pravidly, které mi fungují. Mám je udělané na příspěvky. Bohužel se mi pole nechtějí vypsat a na stránce mám jen ten strohý text z default pole.
Hledala jsem a našla jsem návod -> http://www.advancedcustomfields.com/resources/displaying-custom-field-values-in-your-theme/ který mi ale bohužel neni vůbec jasný.
Mohl by mi někdo pomoci a polopaticky vysvětlit?
15. srpna 2014 (17:24) #19981Plugin Advanced Custom Fields rozšiřuje možnosti klasických uživatelských polí. Podle návodu máte dvě základní možnosti (jako příklad beru, že používáte pole s názvem
jmeno
):1) Vložíte na konec příspěvku zkrácený zápis (shortcode), tedy
[acf field="{$field_name}"]
, např.[acf field="jmeno"]
2) Použijete funkci the_field() přímo v cyklu (loopu) stránky/příspěvku:
<?php the_field('jmeno'); ?>
Tady už ale konkrétní úprava závisí dost na používané šabloně. Obecně musíte funkci vložit někam za funkci the_content() v souboru single.php (pro příspěvky) nebo page.php (pro stránky). Příklad v manuálu je uveden pro jednoduchou vlastní šablonu stránky a je to pouze příklad…
18. srpna 2014 (9:44) #20018Shortcodům jsem se právě chtěla vyhnout a tuto věc zautomatizovat …
Jde mi o to, že dělám informační web a ty příspěvky mám rozdělené do 4 hlavních rubrik a pro každou rubriku mám jiné custom fields a je jich na každé stránce cca 10 a většinou jsou jiné.
Proto by mě zajímalo, jestli pro celou skupinu polí nelze použít něco, jako pro samostatné pole (viz.
<?php the_field('jmeno'); ?>
)Popř. jak vytvořit šablonku pro výpis příspěvku z dané rubriky? Tam bych klidně po jednom ty pole dala …
19. srpna 2014 (14:06) #20022Ok, asi jsem se spletla a ACF asi nebude to pravé. Zkoušela jsem tam vložit po jednotlivém poli a myslela jsem, že se vypíše i název pole … To taky nějak jde?
V praxi bych potřebovala něco, aby to vypadalo nějak takto …
<strong>Příspěvek v rubrice "rubrika1"</strong> zastupný text v defaultním poli <nazev pole>kontakt <vyplň pole>pod holubinkou 10, praha <nazev pole>oteviraci doba <vyplň pole>od pondělí do neděle .... atd.
Existuje něco?
19. srpna 2014 (17:21) #20023Ano, přesně tak tento plugin funguje, jen si to musíte trochu doprogramovat…
Předpokládám, že upravujete soubor
single.php
, který slouží pro zobrazení konkrétního příspěvku. Jeho šablonu si tak musíte upravit, aby obsahovala ještě podmínku na určitou rubriku (žádné soubory typusingle-category.php
bohužel hierarchie WordPressu zatím patrně neumožňuje). Možná by bylo pro přehlednost vhodné použít funkci get_template_part(), případně použít filtr single_template (příklad). Ale zpět k našemu příkladu…Použít musíte zejména podmínku in_category(). A pokud to chcete celé automatizovat i s názvy polí, tak bude asi vhodnější použít funkci get_field_object():
<?php if ( in_category( 'rubrika1' )) { $nazev_pole = "jmeno"; $jmeno = get_field_object( $nazev_pole ); echo $jmeno['label'] . ': ' . $jmeno['value']; } ?>
Kód jsem nezkoušel, jde pouze o ilustrační ukázku, ale měl by teoreticky fungovat. Existují ale určitě i lepší řešení, tento plugin moc neznám, takže tam možná budou nějaké hooky nebo možnost použít informace přímo z objektu dotazovaného příspěvku (tedy i rubriku), těžko říci, zkuste to zatím takto a pořádně nastudujte manuál…
20. srpna 2014 (8:38) #20033Jop, to je přesně to, co potřebuji! Děkuji moc!
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.