Ü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. Annyira php-s még nem vagyok, hogy összehozzam sajna.
[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. )
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.
[OFF] Ti ugye tudjátok, hogy miről beszélgettek?
[/OFF]
Miért, kellene?
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.
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.