Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Nahrazení informace o příspěvku metaboxem
Zvolené téma obsahuje celkem 11 odpovědí. Do diskuze (3 účastníci) se naposledy zapojil uživatel sjiamnocna a poslední změna je stará 10 let, 7 měsíců.
-
AutorPříspěvky
-
4. srpna 2013 (13:36) #3548
Zdravím. Potřeboval bych poradit: chtěl bych kompletně nahradit informaci o příspěvku (postmeta) daty z metaboxu. Příklad: Mám stránku, na které mám v CPT songs písně, a k nim potřebuju přidat autora. Nechci to dělat zvláštním vztahem, který řeší nový metabox, ale chci to uložit stejně jako autora příspěvku (namísto tbl. wp_post_meta do wp_posts pod sloupec post_author či jak to vlasně funguje) – při tvorbě CPT jsem vyřadil všechny základní informace jako čas atp. a nechal jen text a title, a myslím, že by se to mělo dát nahradit za obyčejné pole author – kdyby tak jen proto, že jej potom vypíšu klasicky a nemusím hrabat v getpostmeta. Šlo by to nějak udělat?
7. září 2013 (8:28) #16127Opravdu se tady všichni bojí mých dotazů? Je to docela kontraproduktivní, že se ostatní dotazy řeší a můj tady pokaždé leží půl roku bez odpovědi (a není to neaktivitou lidí). Někdy mě to odrazuje od řešení ostatních problémů – odpovím inteligentní odpovědí (někdy i s kompletním řešením) a hned po mně to někdo komentuje stylem “Ano, to je správný postup ale…”, přitom ale když já založím téma, nikdo nenapíše ani “Ne, to opravdu nejde”…
8. září 2013 (7:25) #16128Hele, my občas máme také dovolené a jiné povinnosti. Rady jsou snad zcela dobrovolné, ne?
K dotazu – jde to, ale je to jako se drbat se pravou rukou za levým uchem. Takže bych to udělal raději přes post_meta. U autora postu se navíc ukládá jeho id, je to bigint, takže by jsi ty jména autorů musel někde ukládat, ať již jako pole, nebo udělat tabulku v databázi. Udělat jde vše, ale řešení by bylo asi moc složité.
8. září 2013 (11:40) #16129Nejde o neuznání dovolené… Jde o to, že zatímco jiné dotazy řeší uživatelé během pěti minut, jakmile zadám dotaz já – třeba velmi primitivní (pro vás) -, není ani slovně odmítnut. To byl takový lehký povzdech po lepších časech no…
Už jsem začal přemýšlet o použití metaboxu – mohl by se uložit jako normální text v metaboxu ale chtěl bych, aby když si uživatel nainstaluje plugin, ať nemusí vytvářet speciální šablonu pro písně. Chtěl bych upravit obsah tagu the_author během výpisu písně. Díval jsem se na funkci add_filter ale ta podle toho, co jsem viděl neumí filtrovat titulek.
Taky by se hodilo, kdybych mohl nahradit celý loop za vlastní v archivní šabloně (aniž bych poškodil vzhled webu) – měl bych řadit písně dle abecedy (titulku) a ukládat je do tabulky, ale to asi bez šablony nepůjde – resp. jde řazení, ale to jak změním formát celého archivního výpisu je zatím tajemstvím
8. září 2013 (11:40) #16130Jej sory – myš mi kliká dvakrát…
8. září 2013 (16:47) #16131Jak to že nejde změnit title pomocí add_filter?
http://codex.wordpress.org/Plugin_API/Filter_Reference/the_title
Řazení pro archive změníš pomocí pre_get_post a podmínky is_archive
http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts
Nahrazení archívní šablony vlastním souborem šablony pomocí add_filter archve template
http://codex.wordpress.org/Plugin_API/Filter_Reference/archive_template
Všechno najdeš v codexu, na tohle je WordPress super.
8. září 2013 (19:30) #16132Souhlasím, WP Codex je skvělý (a je to víceméně důvod, proč u mně WP vyhrál nad jinými CMS) – Dělal jsem s drupalem a joomlou, a z těch žádný nic pořádného neměl – všichni jen články “jak vytvořit šablonu” ap. :)
S titlem se vcelku pracovat dá, ale já mám na mysli tag the_author – potřebuji, aby se v šabloně místo autora CPT postu na místě použití the_author zobrazil autor písně – tedy obsah metaboxu autor (aby se nemusela používat speciální šablona).
Na změnu pravidel archivů, bych chtěl nahradit jen loop – abych mohl změnit strukturu výpisu (jestli je to možné), aby uživatelé nemuseli vytvářet šablonový soubor archive-CPT a zároveň bude výpis odpovídat šabloně.
Jsou to docela podivné dotazy, já vím ale jsou téměř nezbytné – v jiném případě bych tyto věci musel obejít.
9. září 2013 (5:18) #161339. září 2013 (18:21) #16134Osobně nikdy nerozlišuji, KDO je autorem dotazu či příspěvku na fóru, ale zejména CO je jeho obsahem. Pokud je dotaz složitější, nejasný nebo neznám z hlavy odpověď a zrovna není chuť či čas na delší psaní a vysvětlování, tak se může stát, že dotaz bohužel zapadne v přívalu dalších nových vláken… Není to plánované, jen se to prostě občas tak nějak stane :-) Ale zpět k dotazu…
sjiamnocna: Původně jsem ani pořádně nepochopil dotaz :-) Osobně bych pro autora písně nepoužíval uživatelský systém WordPressu, protože k tomu prostě není určen. Přijde mi trochu podivné, aby vedle uživatele admin existoval ještě např. mrtvý uživatel “Beatles”, který bude mít nějaké uživatelské jméno, heslo a email. Nepoužil bych ale asi ani uživatelská pole (aneb zmiňované “post meta”), ale spíše vlastní taxonomii “autor”, protože jeden autor může napsat více písniček a uživatelé by třeba mohli chtít vidět i seznam všech písniček konkrétního autora, což lze nejlépe dosáhnout pomocí taxonomií…
Asi bych ani moc neřešil filtrování funkce the_author(), i když je to docela zajímavý nápad, jak obejít stávající omezení. Co když je ale autor v nějaké šabloně uveden někde malým písmem na konci příspěvku? Nehledě na to, že pokud je na webu jen jeden autor, tak je často zcela skrýván (např. u výchozích šablon WordPressu).
Samozřejmě rozumím myšlence integrace pluginu s písněmi do různých šablon bez zásahu do kódu, ale stejně je to dost problematické. Různé šablony mohou volat různé funkce a používat i vlastní hooky, takže i když použijete zmiňovaný filtr
archive_template
a součástí pluginu bude nějaká speciální šablona, tak nemusí bohužel fungovat všude. Často se ale v tomto případě používají následující způsoby:– Filtry
the_content
athe_excerpt
, kdy se výpis taxonomie připojí přímo k obsahu písně (třeba na konec či začátek, případně se nastavení ponechá na uživateli).– Zkrácené zápisy (shortcode), kdy je uživatel donucen vložit na libovolné místo textu informace o písni (autor, rok vzniku, atd).
– Widgety, kdy jsou informace o písničce nabídnuty v podobě widgetu a každý si je tam může umístit (u některých šablon to samozřejmě nefunguje nebo je to dost daleko od samotného textu písně).
Každopádně autor obecného pluginu by měl ideálně nabízet všechny možnosti, a to včetně funkcí pro ruční úpravu šablony :-)
9. září 2013 (19:07) #16135Pokusím se myšlenku trochu osvětlit:
1.mám CPT song řešenou pluginem. Potřeboval bych, aby se archiv písní zobrazoval v tabulce a aby se písně řadily dle názvu.
2.v single příspěvku, jsem chtěl nějak jednodušeji zobrazovat text písně a autory
Myšlenku alterování the_author mi admin rozmluvil :D takže se rozhlížím po něčem jako jsou u příspěvků tagy, nebo spíše kategorie. Co jsou taxonomie, jsem nepochytil ani z codexu ani z článků na netu, takže nejsem ideální materiál ale snad to jednou pochopím
Myslíte, že je lepší přes filtry editovat obsah, nebo prostě vytvořit nějakou šablonu a tu pak podstčit jako šablonu pro písně (jednoduchá – seznam písní s tlačítkem zpět nebo tak něco)? nebo udělat filtr jen pro single šablonu a výpis zařídit přes shortcode?
10. září 2013 (20:51) #16136Ad 1) Ano, pokud chcete mít písně na jedné stránce (a ne jako klasický archiv se stránkováním, např. po deseti písních), tak je asi nejčastěji používán zkrácený zápis (shortcode), který může uživatel vložit do stránky. Ideálně plugin stránku “Písně” rovnou vytvoří a zkrácený zápis tam vloží. Na základě zkráceného zápisu pak můžete generovat libovolnou tabulku… Archiv písní tak bude umístěn na stránce a nikoli v klasickém archivu…
Ad 2) Zobrazení jednotlivých písní by pak mělo jít snadno modifikovat pomocí filtru
the_content
.Taxonomie rozhodně doporučuji nastudovat, protože to přesně to, co potřebujete :-) Štítky a rubriky jsou také vlastně taxonomie, takže si můžete vytvořit vlastní “rubriky” (aneb autory) pro vlastní typ obsahu “písně”.
13. září 2013 (14:48) #16138Ještě něco: Jak moc umí WordPress pracovat s XML? nebo se s tím pracuje přes normální simple XML nebo přes nový objekt (či jak se to dělá v PHP:D) ?
Mimo toto už nic víc nepotřebuju… Děkuji za rady :)
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.