Özel gönderi türü gönderi kimliğini yalnızca slug'tan almak mümkün mü?
Bildiğim kadarıyla başlık kullanarak id alabilirsiniz. Ama sümüklü böcekler benzersiz olduğu için özel bir yazı türünde aynı başlık olabilir ???
Özel gönderi türü gönderi kimliğini yalnızca slug'tan almak mümkün mü?
Bildiğim kadarıyla başlık kullanarak id alabilirsiniz. Ama sümüklü böcekler benzersiz olduğu için özel bir yazı türünde aynı başlık olabilir ???
Yanıtlar:
Kullanabilirsiniz get_page_by_path()
- adın sizi aldatmasına izin vermeyin, üçüncü argüman yazı tipidir:
if ( $post = get_page_by_path( 'the_slug', OBJECT, 'post_type' ) )
$id = $post->ID;
else
$id = 0;
Birkaç gün bekleyip 8 Aralık'ta ( AFAIK ) yayınlanacak olan Wordpress 4.4'e yükseltirseniz , bir dizi sümüklü böcek alan yeni parametreyi kullanabilirsiniz.post_name__in
WP_Query
Komple yayın nesnesine ihtiyacınız varsa
$args = [
'post_type' => 'my_custom_post_type',
'posts_per_page' => 1,
'post_name__in' => ['post-slug']
];
$q = get_posts( $args );
var_dump( $q );
Yalnızca kimliğe ihtiyacınız varsa
$args = [
'post_type' => 'my_custom_post_type',
'posts_per_page' => 1,
'post_name__in' => ['post-slug'],
'fields' => 'ids'
];
$q = get_posts( $args );
var_dump( $q );
post_name
özellik ve category_name
parametre gibi yanlışslug
name
Eğer sadece post id istiyorsanız bu bir satırda hile yapacak.
url_to_postid( site_url('the_slug') );
url_to_postid
Çok esnek bir işlevdir: Eğer permalink / tam URL her türlü geçmek ve bu URL için en doğru sonrası kimliğini alabilirsiniz. Bununla birlikte, esnek kullanım nedeniyle oldukça yavaştır (özellikle çok sayıda uç nokta / post tipi ile). Belirli bir yazı tipi için sadece bir sülükten geçerseniz, kullanımı çok daha hızlıdırget_page_by_path()