Adott oldal címének lekérdezése loop-on kívül

Üdv!











A következő lekéréssel próbálom a elemek tartalmát lekérni. A functions.php-ba próbálom, hogy majd onnan szúrja be a megjelenésbe. (Ha a megjelenés frissül, csak a functions.php-t legyen szükséges módosítanom.)









add_action( ‘wp_head’, ‘Oldalam_meta_cim’ );



function Oldalam_meta_cim()



{



echo ‘<meta property=“og:title” content="’;







if ( is_front_page() ) {







bloginfo( ‘name’ );



echo “.hu”;







}



elseif ( is_page() ) {







if ( get_post_meta($post->ID, ‘bloglap’, true) ) {



echo “Oldalam.hu | Webmester blog”;



}



echo "Oldalam.hu | ";



echo get_the_title();



} elseif ( is_category() ) {







echo "Oldalam blog kategória: ";



single_cat_title();







} elseif ( is_tag() ) {







echo "Oldalam címke: ";



single_tag_title(’’);







} elseif ( is_single() ) {



bloginfo( ‘name’ );



echo " | “;



the_title();







} else {







bloginfo( ‘name’ );



echo " | “;



the_title();



}



echo '”>’ . “n” ;



}











A kód megy, kivétel egy lapon. A weboldalam egyik lapja (page) a kezdőlap, majd a Blog nevű lapon vannak a bejegyzések. A blog oldalon mindig az első bejegyzés címét írja be, nem pedig azt, hogy “Blog”.



Miért?







Próbáltam így:







elseif ( is_page(array(117,‘blog’,‘Blog’)) ) {







echo “Oldalam.hu | Blog”;



}







Azonban így sem akarja adni…





add_action( ‘wp_head’, ‘Oldalam_meta_cim’ );





function Oldalam_meta_cim()





{





echo '<meta property=“og:title” content=”’;











if ( is_front_page() ) {











bloginfo( ‘name’ );





echo “.hu”;











}





elseif ( is_page() ) {











if ( get_post_meta($post->ID, ‘bloglap’, true) ) {





echo “Oldalam.hu | Webmester blog”;





}





echo "Oldalam.hu | ";





echo get_the_title();





} elseif ( is_category() ) {











echo "Oldalam blog kategória: ";





single_cat_title();











} elseif ( is_tag() ) {











echo "Oldalam címke: ";





single_tag_title(’’);











} elseif ( is_single() ) {





bloginfo( ‘name’ );





echo " | ";





the_title();











} else {











bloginfo( ‘name’ );





echo " | “;





the_title();





}





echo '”>’ . “n” ;





}

















A kód megy, kivétel egy lapon. A weboldalam egyik lapja (page) a kezdőlap, majd a Blog nevű lapon vannak a bejegyzések. A blog oldalon mindig az első bejegyzés címét írja be, nem pedig azt, hogy “Blog”.





Miért?











Próbáltam így:









elseif ( is_page(array(117,‘blog’,‘Blog’)) ) {







echo “Oldalam.hu | Blog”;



}







Azonban így sem akarja adni…





elseif ( is_page(array(117,‘blog’,‘Blog’)) ) {











echo “Oldalam.hu | Blog”;





}











Azonban így sem akarja adni…

(A fenti részben egyedi mezővel próbáltam megoldani, de úgy sem akar menni.)

Próbálkoztam még az alábbival:









add_action( ‘wp_head’, ‘gen_meta_desc’ );



function gen_meta_desc()



{



global $post;



if ( ! is_singular() )



return;



$meta = strip_tags( $post->post_content );



$meta = str_replace( array( “n”, “r”, “t” ), ’ ', $meta);



$meta = substr( $meta, 0, 125 );



echo “”;



}







Ez végül is megjeleníti amit szeretnék, csak egy bibi van: karakterekkel számol, nem szavakkal. Miként lehet átalakítani ezt, hogy karakterekkel számoljon?





add_action( ‘wp_head’, ‘gen_meta_desc’ );





function gen_meta_desc()





{





global $post;





if ( ! is_singular() )





return;





$meta = strip_tags( $post->post_content );





$meta = str_replace( array( “n”, “r”, “t” ), ’ ', $meta);





$meta = substr( $meta, 0, 125 );





echo “”;





}











Ez végül is megjeleníti amit szeretnék, csak egy bibi van: karakterekkel számol, nem szavakkal. Miként lehet átalakítani ezt, hogy karakterekkel számoljon?

Köszi, csak ezek nem a the_excerpt-hez szólnak. :slight_smile: Annyira php-s még nem vagyok, hogy összehozzam sajna.


Quote:




[font=helvetica, arial, sans-serif:t1sbnu41]Próbáltam így:[/font:t1sbnu41]





elseif ( is_page(array(117,'blog','Blog')) ) {





echo "Oldalam.hu | Blog";


}


[font=helvetica, arial, sans-serif:t1sbnu41]Azonban így sem akarja adni......[/font:t1sbnu41]











Szoval akkor az a problema, hogy az is_page() nem ugy teljesul, ahogy akarnad?

Igen.





Egy adott page-nél szeretném én megadni a tartalmat. (Minden más oldalon jó ez a kód, csak ennél nem. A Facebook meta tag-ekhez kellene. irritated.gif )

Hat echozz (vagy var_dump()) ki egy “get_theID();” a problemas oldalon es akkor latod, hogy mi a helyzet

Végül a sablon framework-ét használtam és az általa generált costrumfield-eket. Nem a legszebb és sablon specifikus megoldás, de legalább rendesen megy. :slight_smile:

[OFF] Ti ugye tudjátok, hogy miről beszélgettek? :slight_smile: :slight_smile: [/OFF]

Miért, kellene? :smiley:

A fenti problémát egy trükkel sikerült megoldanom, felhasználva a sablon saját framework rendszerért. Azonban nem nyitnék új témát, egy majdnem teljesen hasonló kérdésnek.











A helyzetet összefoglalva:





Azon dolgozom napok óta, hogy a sablon functions.php-je egyy “add wp_head”-el, a head elembe tegye a facebook meta tag-eket. Azonban a description-t nem bírom megadni.





A the_excerpt() csak loop-ban működik, de én a functions.php-ba is szeretném meghívni, hogy a head részben megjelenjen az oldal/bejegyzés tartalmának rövidített változata.











Ezt miként tehetném meg?

LOOP-on kívüli adatbázis “sorok” lehívásához van kész függvény.











Az egyik a get_post() a másik meg a get_page().











Címet, “contentot”, stb le lehet kérni velük, id szerint, nem kell külön sql utasításokkal bajlódni.











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











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

Köszi. :slight_smile:











Ebben tudnál részletesebben segíteni?





Szeretnék egy olyan kódot csinálni, ami bármelyik oldalba beilleszthető és ezt publikálni.

Igazabol neked a globalis post valtozo kell szerintem.















global $post;











Ezt ugy is fel lehet fogni, mintha azt mondanam “az a $post object ami MOST van jelen”. Kicsit olyan mint a javascript, php “this” kulcsszo. Ez ugye azert kell mert a loop-on kivul vagy. A ‘get’-tel kezdodo fuggvenyek meg csak annyiban kulonboznek, hogy return-nel ternek vissza es nem echo-val mint a sima sablon fuggvenyek. Tehat egy nativ php primitvet adnak vissza (string,array,object vagy mas).











<?



function fb_tags() {



global $post;



// az eppen aktualis post/page



$cim=get_the_title();



$link=get_permalink();



$kivonat=get_the_excerpt();



if(has_post_thumbnail( $post->ID )){



$kep=$wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), ‘medium’ );



}else{



$kep=“valami altalanos kep”;



}







}



add_action( ‘wp_head’, ‘fb_tags’, 5 );















Persze a kulonbozo felteteleket neked kell hozzadni, meggyozodni hogy a helyes eredmenyek jonnek e vissza. Peldaul mi van ha nincs excerpt, stb, stb.





global $post;

















Ezt ugy is fel lehet fogni, mintha azt mondanam “az a $post object ami MOST van jelen”. Kicsit olyan mint a javascript, php “this” kulcsszo. Ez ugye azert kell mert a loop-on kivul vagy. A ‘get’-tel kezdodo fuggvenyek meg csak annyiban kulonboznek, hogy return-nel ternek vissza es nem echo-val mint a sima sablon fuggvenyek. Tehat egy nativ php primitvet adnak vissza (string,array,object vagy mas).















<?



function fb_tags() {



global $post;



// az eppen aktualis post/page



$cim=get_the_title();



$link=get_permalink();



$kivonat=get_the_excerpt();



if(has_post_thumbnail( $post->ID )){



$kep=$wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), ‘medium’ );



}else{



$kep=“valami altalanos kep”;



}







}



add_action( ‘wp_head’, ‘fb_tags’, 5 );















Persze a kulonbozo felteteleket neked kell hozzadni, meggyozodni hogy a helyes eredmenyek jonnek e vissza. Peldaul mi van ha nincs excerpt, stb, stb.





<?





function fb_tags() {





global $post;





// az eppen aktualis post/page





$cim=get_the_title();





$link=get_permalink();





$kivonat=get_the_excerpt();





if(has_post_thumbnail( $post->ID )){





$kep=$wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), ‘medium’ );





}else{





$kep=“valami altalanos kep”;





}











}





add_action( ‘wp_head’, ‘fb_tags’, 5 );























Persze a kulonbozo felteteleket neked kell hozzadni, meggyozodni hogy a helyes eredmenyek jonnek e vissza. Peldaul mi van ha nincs excerpt, stb, stb.