HTML kod nece da se sacuva unutar textarea

Pozdrav.

Kreirao sam jedan Custom Post Type koji ima 2 dodatna polja koja sam dodao sa add_meta_box funkcijom.U textarea polje bi se trebao unositi HTML kod tacnije embed, ali kada se zalijepi HTML kod vrijednost tog polja uopste se ne sacuva.Dok kada upisem obican text sacuva se normalno i ispise se na stranici.Da li postoji neka dodatna funkcija koja se treba koristiti ili nesto drugo ?

Kad sam vec tu da postavim jos jedno pitanje.U jednom dijelu unutar functions fajla provjeravam da li su upisana ova 2 polja, ako nisu da se ne desi nista tj. da se ne vrsi njihov upis u bazu.To radim pomocu isset funkcije.Meni treba to da je samo jedno polje od ta 2 popunjeno i ako je popunjeno jedno moze se nastaviti proces.

esc_html( $textearea );

if (isset($polje1) || isset($polje2) {...}

Pokusao vec i ne pomaze.

Sto se tice drugog dijela pitanja kod mene ta provjera ide na drugi nacin, odnosno ovako sam pokusao

if (!isset($polje1) || !isset($polje2) {
    return;
}
if (isset($polje1) || isset($polje2) { nastavi proces } else { ... }

Prvi deo ne kontam kako moze da ti ne radi? Jel ti hoces da ti ispise HTML kod ili da ga primeni? Lupam jel hoces iframe nekog videa da pise kao kod ili da se pojavi video?

Hocu da ga primjeni, ali jednostavno nece da se spremi.Kada kliknem na ‘Update’ gumb to polje bude prazno, a kad pregledam post nema nista.Dok ako upisem neki obican text nakon klika na ‘Update’ gumb polje je popunjeno onako kako treba da bude i text je prikazan unutar Custom Post Type-a.

$input = get_post_meta( $post->ID, '_my_meta_input', true );
echo wp_oembed_get( $input );

http://codex.wordpress.org/Function_Reference/wp_oembed_get

Meni se cini da je problem u tome kako pokazujes tu vrijednost kasnije u admin dijelu.

Znaci tamo gdje si definirao custom meta polje, pobrini se da unutar <textarea></textarea> imas esc_textarea(), npr:

$meta_value = get_post_meta( $post->ID, 'post_meta_key', true );

echo '<textarea>' . esc_textarea( $meta_value ) . '</textarea>';

Ovo mislim na admin dio. Dakle tebi se vrijednost spremi ali kasnije kada vuces iz baze trebas tu vrijednost pravilno prikazati.

Pretpostavljam da je u tome problem.

Opet nece.Kod mene je unutar <texarea></textarea> bilo esc_attr( $meta_value ) ,probao sam sa ovime sto si rekao ali opet isto.Evo kod koji se nalazi unutar functions.php fajla:

http://pastebin.com/EC0ttJed

A evo kako to prikazujem.Unutar fajla single-game.php se pozivam content-game.php fajl, koji se nalazi unutar loopa.

http://pastebin.com/Hib2mCe4

<div class="entry-game">
        <?php 
            $swf_gameurl = get_post_meta( $post->ID, 'swf_value_key', true );
            $embed_code = get_post_meta( $post->ID, 'embed_value_key', true );

            $print_game = $swf_gameurl === '' ? $embed_code : $swf_gameurl;
           
        if ( $print_game === $swf_gameurl ) { ?>
			<object type="application/x-shockwave-flash" width="900" height="520" data="<?php echo $swf_gameurl; ?>"><param name="movie" value="<?php echo $print_game; ?>" /></object>    
         <?php } else { echo wp_oembed_get($print_game); } ?>
    </div>

Ubacis samo link youtube videa i vidi dal radi ovako?

Funkcija wp_ombed_get() ne radi ono sto meni treba.Meni treba to da korisnik nalijepi izvorni embed kod i da se taj embed prikaze na stranici (ne u obliku koda).

wp_ombed_get() 

uopste ne prikazuje u obliku koda nego uzima link lupam videa sa youtube-a, vimea itd i pretvara u embed. To ti je resenje, znaci da korisnik upisuje link jednostavno umesto celog embed koda.

A druga opcija ti je da zamenis ovu liniju:

$my_data_embed = sanitize_text_field( $_POST['cpt_embed']);

ovom:

 $my_data_embed = $_POST['cpt_embed'];

u prvom fajlu.

1 Like

wp_ombed_get() pretvara npr neki link u embed kod.Meni to ne treba, meni treba opcija da korisnik moze nalijepiti vlastiti embed kod koji u nekim slucajevima moze biti i iframe i da se prikaze taj embed odnosno iframe.

Ovaj drugi dio tvog posta je odgovor za mene.Nakon sto sam izbacio sanitize_text_field() radi onako kako zelim.

Hvala :wink:

1 Like