lostyazilim
tr.link

Shortcode ile başlık ve görsel çekme

5 Mesajlar 1.043 Okunma
acebozum
tr.link

MuratDinc MuratDinc Miyavliyo - WiseKitten Kullanıcı
  • Üyelik 01.11.2012
  • Yaş/Cinsiyet 32 / E
  • Meslek Girişimci
  • Konum Balıkesir
  • Ad Soyad M** D**
  • Mesajlar 1583
  • Beğeniler 207 / 257
  • Ticaret 5, (%100)
Merhabalar,

Yazıların içerisine shortcode kullanarak nasıl başka bir yazının ID'si ile öne çıkarılmış görsel ve başlığı çektirebilirim? html,css tarafını hallederim ancak php tarafını bilmiyorum. Amacım benzer yazıyı yazı içerisinde [benzer ıd=2593] mantığına sahip bir shortcode ile getirmek. Fonksiyon yazan ID'ye ait yazının verilerini çekecek.

Şimdiden teşekkürler.
 

 

👉 Türkiye'nin En Minnoş Kedi Bloğu Miyaliyo! 😻
elektronikssl
webimgo

hasnhasan hasnhasan coverssocial.com Kullanıcı
  • Üyelik 09.07.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Data Mining Expert
  • Konum İzmir
  • Ad Soyad H** Ö**
  • Mesajlar 208
  • Beğeniler 67 / 77
  • Ticaret 3, (%100)
Temanızın function.php dosyasına aşağıdaki kodları ekleyin;


add_shortcode('benzer', 'get_similar');
function get_similar($atts,$content=''){
extract( shortcode_atts( array( 'id' => '' ), $atts ) );
if (!$id) return $content;
foreach (explode(',',$id) as $postId) {
$post = get_post($postId);
if (!$post) continue;
$baslik = $post->post_title;
$resim = get_the_post_thumbnail_url($postId);
$content .='
buraya html kodlarını yazabilirsin
';
}
return $content;
}

Aşağıdaki şekilde kullanabilirsiniz;
[benzer id=2593][/benzer]
MuratDinc HidrolikAdam

kişi bu mesajı beğendi.

MuratDinc MuratDinc Miyavliyo - WiseKitten Kullanıcı
  • Üyelik 01.11.2012
  • Yaş/Cinsiyet 32 / E
  • Meslek Girişimci
  • Konum Balıkesir
  • Ad Soyad M** D**
  • Mesajlar 1583
  • Beğeniler 207 / 257
  • Ticaret 5, (%100)

hasnhasan adlı üyeden alıntı

Temanızın function.php dosyasına aşağıdaki kodları ekleyin;


add_shortcode('benzer', 'get_similar');
function get_similar($atts,$content=''){
extract( shortcode_atts( array( 'id' => '' ), $atts ) );
if (!$id) return '';
foreach (explode(',',$id) as $postId) {
$post = get_post($postId);
if (!$post) continue;
$baslik = $post->post_title;
$resim = get_the_post_thumbnail_url($postId);
$content .='
buraya html kodlarını yazabilirsin
';
}
return $content
}

Aşağıdaki şekilde kullanabilirsiniz;
[benzer id=2593][/benzer]



Nedenini bilmiyorum ama hata veriyor. Hata; "sayfaya ulaşılamıyor".
 

 

👉 Türkiye'nin En Minnoş Kedi Bloğu Miyaliyo! 😻

hasnhasan hasnhasan coverssocial.com Kullanıcı
  • Üyelik 09.07.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Data Mining Expert
  • Konum İzmir
  • Ad Soyad H** Ö**
  • Mesajlar 208
  • Beğeniler 67 / 77
  • Ticaret 3, (%100)

SkyGhostAir adlı üyeden alıntı

Nedenini bilmiyorum ama hata veriyor. Hata; "sayfaya ulaşılamıyor".

return $content
bölümünü aşağıdaki şekilde değiştirdiğinizde problem düzelir.
return $content;
MuratDinc

kişi bu mesajı beğendi.

wmaraci
wmaraci

MuratDinc MuratDinc Miyavliyo - WiseKitten Kullanıcı
  • Üyelik 01.11.2012
  • Yaş/Cinsiyet 32 / E
  • Meslek Girişimci
  • Konum Balıkesir
  • Ad Soyad M** D**
  • Mesajlar 1583
  • Beğeniler 207 / 257
  • Ticaret 5, (%100)

hasnhasan adlı üyeden alıntı

return $content
bölümünü aşağıdaki şekilde değiştirdiğinizde problem düzelir.
return $content;


; benimde gözümden kaçmış, olmayınca sorunu sorunlu yeri kaldırarak çözdüm. Böylece istediğim gibi [benzer ıd=] mantığı ile çalışır oldu. Shortcode içerisine değer girip, harici bir içerik ekleyeceğim için content gerekli değildi. $content'in nasıl kullanıldığını öğrenmiş oldum ama :)

Birkaç sorum daha olacak. Kullanmak istediklerim başlık ve görselden ötedeymiş. Benim yazının URL'sine, Yayınlanma tarihine (18 haziran 2017), tarih tipine (2017-06-16T18:49:25+00:00), yazar ismine ve adresine de ihtiyacım varmış. Bunları da aradım anca kendim yapamadım.

Tarih tipi html'de datetime="2017-06-16T18:49:25+00:00" olarak görünüyor. Tema kodlarında ise datetime="' . date(DATE_W3C, $td_article_date_unix) . '" yazıyor.

Yani eklenmesi gerekenler $url $tarih $tarih_tipi $yazar $yazar_url

Şu an ki durum şöyle:

function bt_benzer($atts,$content=''){
extract(shortcode_atts(
array(
'id' => ''
),
$atts));
if(!$id) return '';
foreach(explode(',',$id) as $postId) {
$post = get_post($postId);
if (!$post) continue;
$gorsel = get_the_post_thumbnail_url($postId);
$baslik = $post->post_title;
$tarih = $post->post_date;
}
return '





'.$baslik.'



'.$yazar.'-



';
}
add_shortcode('benzer', 'bt_benzer');
 

 

👉 Türkiye'nin En Minnoş Kedi Bloğu Miyaliyo! 😻
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al