Úvodní stránka › Fórum podpory WordPressu › Čeština pro WordPress › jde nějak vypnout, když píšu v HTML, aby mi WP sám vkládal tagy?
Štítky: Formátování kódu, remove_filter(), wpautop
Zvolené téma obsahuje celkem 7 odpovědí. Do diskuze (3 účastníci) se naposledy zapojil uživatel neteyescz a poslední změna je stará 12 let, 8 měsíců.
-
AutorPříspěvky
-
19. srpna 2011 (16:47) #1121
v html editoru jsem dal:
[contact-form 1 “Kontaktní formulář 1”]
<div class=”cf-box”>
<img class=”mapka” title=”” src=”xxxxx” alt=”” />
<h6>Naše centrum</h6>
<p>Horní dolní</p>
</div>
a výsledek:
<div class=”cf-box”>
<img class=”mapka” title=”” src=”xxxxx” alt=”” />
</p>
<h6>Relaxační centrum pyramida</h6>
<p>Špitálka 16, 602 00 Brno
</p></div>
jsou tam přidané
, což by nevadilo, ale proč mi tam proboha hodil </p>, hned za ten odkaz?Samozřejmě ten odkaz můžu obalit <p></p>, ale proč bych to měl dělat?
Jde toto otravné “samodoplňování” kódu někde vypnout?
19. srpna 2011 (16:59) #9024Zdravím,
Wordpress automaticky doplňuje <p> v html editoru, pokud stisknete Enter, tedy odřádkujete text. Tuto funkci lze vypnout přidáním následujícího do wp-includes/post-template.php, pod cunkci the_content.:
<?php remove_filter ('the_content', 'wpautop'); ?>
Neteyes.cz
19. srpna 2011 (17:44) #9025Hurááá, perfektní :-)
Prvně jsem si s tím musel trochu “pohrát” (nějak mi to tam nešlo zakomponovat), tak kdyby někdo ještě potřeboval, tak je to takto:
function the_content($more_link_text = null, $stripteaser = 0) {
$content = get_the_content($more_link_text, $stripteaser);
$content = apply_filters(‘the_content’, $content);
$content = str_replace(‘]]>’, ‘]]>’, $content);
echo $content;
}
remove_filter (‘the_content’, ‘wpautop’);
tedy bez toho uzavření v tagu
Díky moc.
19. srpna 2011 (18:08) #9026To jsem rád :-)
Děkujeme za přesné umístění.
PS: Příště prosím uzavírejte kód do apostrof.
Děkujeme.
19. srpna 2011 (18:13) #9027Ještě moc prosím, kdybyste byl tak hodný a podíval se mi na tuhle otázku:
19. srpna 2011 (19:22) #9028max: Co to znamená “tedy bez toho uzavření v tagu”?
Rozhodně nedoporučuji upravovat nějaký soubor jádra WordPressu, tedy ani soubor wp-includes/post-template.php. Při další automatické aktualizaci by se to nemuselo vyplatit, protože může být soubor přemazán novou verzí. Funkce remove_filter() je ideální pro použití v samostatném pluginu nebo přímo v souboru functions.php (v adresáři šablony).
Stačí tedy vložit tento kód do souboru functions.php (třeba na konec):
remove_filter( 'the_content', 'wpautop' );
Pokud vkládáte do fóra nějaký zdrojový kód, můžete ho označit (na začátku a na konci) pomocí znaků obráceného apostrofu ( ` ). Pokud ho nemůžete na klávesnici najít, tak si ho zkopírujte přímo z fóra (je uveden na řádku pod tlačítkem “Odeslat příspěvek”). Můžete nám sem ještě jednou pro přehlednost vložit úvodní kód, který je neúplný a bylo by hezké na něm názorně vidět popisovaný problém?
20. srpna 2011 (6:59) #9029Aha, to mě nenapadlo to dát do functions.php… Já si říkal, že si pak asi budu muset dávat pozor a po aktualizaci WP to znovu upravit, takhle je to lepší.
Původní kód byl:
function the_content($more_link_text = null, $stripteaser = 0) {
$content = get_the_content($more_link_text, $stripteaser);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
}a po úpravě:
function the_content($more_link_text = null, $stripteaser = 0) {
$content = get_the_content($more_link_text, $stripteaser);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
}
remove_filter ('the_content', 'wpautop');ale jak píšete, dal jsem si to do functions.php
Díky moc.
20. srpna 2011 (9:09) #9030Ano, moje řešení bylo kostrbaté :-)
Takhle je to nejen pohodlnější, ale i bezpečnější.
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.