lostyazilim
tr.link

Wordpress metabox daki değerlere göre post çekmek ?

3 Mesajlar 710 Okunma
lstbozum
tr.link

WolfmanTR WolfmanTR WM Aracı Kullanıcı
  • Üyelik 02.01.2014
  • Yaş/Cinsiyet 34 / E
  • Meslek Wordpress, CSS Dev.
  • Konum Ankara
  • Ad Soyad Y** S**
  • Mesajlar 96
  • Beğeniler 19 / 7
  • Ticaret 0, (%0)
Merhaba, Anasayfada sabit yazılar kısmı var.Wordpress post sayfasına metabox ile bir checkbox ekledim.Yazı sayfasında checkbox işaretli ise sabit yazılar kısmında checkbox işaretli olan yazılar görünecek.Bunu neye göre yapacağım.Hangi değere göre loop yapacağım ?


j4cob_yaz_ayarlar_get_meta( 'j4cob_yaz_ayarlar_show_on_slider_' )==true ise checkbox işaretlenmiş oluyor.

Oluşturduğum metabox kodları

function j4cob_yaz_ayarlar_get_meta( $value ) {
global $post;

$field = get_post_meta( $post->ID, $value, true );
if ( ! empty( $field ) ) {
return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
} else {
return false;
}
}

function j4cob_yaz_ayarlar_add_meta_box() {
add_meta_box(
'j4cob_yaz_ayarlar-j4cob-yaz-ayarlar',
__( 'J4cob Yazı Ayarları', 'j4cob_yaz_ayarlar' ),
'j4cob_yaz_ayarlar_html',
'post',
'side',
'high'
);
}
add_action( 'add_meta_boxes', 'j4cob_yaz_ayarlar_add_meta_box' );

function j4cob_yaz_ayarlar_html( $post) {
wp_nonce_field( '_j4cob_yaz_ayarlar_nonce', 'j4cob_yaz_ayarlar_nonce' ); ?>



>

}

function j4cob_yaz_ayarlar_save( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! isset( $_POST['j4cob_yaz_ayarlar_nonce'] ) || ! wp_verify_nonce( $_POST['j4cob_yaz_ayarlar_nonce'], '_j4cob_yaz_ayarlar_nonce' ) ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;

if ( isset( $_POST['j4cob_yaz_ayarlar_show_on_slider_'] ) )
update_post_meta( $post_id, 'j4cob_yaz_ayarlar_show_on_slider_', esc_attr( $_POST['j4cob_yaz_ayarlar_show_on_slider_'] ) );
else
update_post_meta( $post_id, 'j4cob_yaz_ayarlar_show_on_slider_', null );
}
add_action( 'save_post', 'j4cob_yaz_ayarlar_save' );


metabox çıktısı



Ek Olarak: WP_Meta_Query ile çözdüm.
https://codex.wordpress.org/Class_Reference/WP_Meta_Query
 

 

J4cob.net
wmaraci
reklam

cagdastakis cagdastakis cagdastakis.com Kullanıcı
  • Üyelik 10.09.2013
  • Yaş/Cinsiyet 38 / E
  • Meslek webmaster
  • Konum İzmir
  • Ad Soyad Ç** T**
  • Mesajlar 728
  • Beğeniler 60 / 298
  • Ticaret 1, (%100)
Kodların biraz çorba olmuş ama çalışıyosa elleme :D

Ansayfanda veya nerde göstermek istiyosan post query de metaboxı da eklemelisin. senin eklediğin özel alanın adı j4cob_yaz_ayarlar_show_on_slider_ olarak gözüküyor. buna göre örnek bi query oluşturalım dersek;


$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'j4cob_yaz_ayarlar_show_on_slider_',
'value' => 'show-on-slider',
'compare' => '=',
),
),
);
$query = new WP_Query( $args );



bu query ile 'j4cob_yaz_ayarlar_show_on_slider_' değeri 'show-on-slider' olan postları çek diyebilirsin
 

 

Konu wordpress ise gerisi teferruattır!
http://wp-nasilyapilir.com/

WolfmanTR WolfmanTR WM Aracı Kullanıcı
  • Üyelik 02.01.2014
  • Yaş/Cinsiyet 34 / E
  • Meslek Wordpress, CSS Dev.
  • Konum Ankara
  • Ad Soyad Y** S**
  • Mesajlar 96
  • Beğeniler 19 / 7
  • Ticaret 0, (%0)

cagdastakis adlı üyeden alıntı

Kodların biraz çorba olmuş ama çalışıyosa elleme :D

Ansayfanda veya nerde göstermek istiyosan post query de metaboxı da eklemelisin. senin eklediğin özel alanın adı j4cob_yaz_ayarlar_show_on_slider_ olarak gözüküyor. buna göre örnek bi query oluşturalım dersek;


$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'j4cob_yaz_ayarlar_show_on_slider_',
'value' => 'show-on-slider',
'compare' => '=',
),
),
);
$query = new WP_Query( $args );



bu query ile 'j4cob_yaz_ayarlar_show_on_slider_' değeri 'show-on-slider' olan postları çek diyebilirsin


Teşekkürler.(Zaten sorunu çözdüğümü belirtmiştim :D )
Kodlarda çorbalık bir durum söz konusu değil ? Neresi karışık ?
 

 

J4cob.net
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