Post object, Page link, Relationship, Taxonomy ve User
5 dk okuma
İlişkisel alanlar WordPress'teki diğer öğelere işaret eder. Kopya değil, kimlik (ID) saklarlar; bu yüzden adı değişen bir yazı veya terim yeni adıyla her yerde görünür.
Tür | Tür kimliği | Bağlandığı öğe | Sütun |
|
|---|---|---|---|---|
Post object |
| Seçilen yazı türlerinden bir yazı |
| yazı kimliği ( |
Page link |
| Seçilen yazı türlerinden bir yazı |
| yazı kimliği ( |
Relationship |
| Birden çok yazı |
| yazı kimliklerinin listesi ( |
Taxonomy |
| Tek bir taksonominin terimleri |
| terim kimliklerinin listesi ( |
User |
| Kullanıcılar, isteğe bağlı olarak role göre |
| kullanıcı kimliklerinin listesi ( |
Ortak davranış:
- Kimlikler kaydedilirken denetlenir: var olmayan veya alanın ayarlarının izin vermediği bir kimlik atılır.
- Hedef sonradan silindiğinde saklanan kimlikler kaldırılmaz.
wpmcf_get_field()saklananı döndürür; yazdırılan çıktı artık var olmayan öğeleri atlar. - Seçiciler korumalı bir yönetim rotası üzerinden arama yapar; bu yüzden yazı düzenleyebilen bir editör gerekir (User alanları için kullanıcıları listeleme yetkisi gerekir). Post object, Page link, Relationship ve User ön yüz formlarında kullanılamaz (Pro). Taxonomy kullanılabilir.
Post object
Yalnızca bir yazı, sayfa veya özel yazı türü kaydı seçer.
Ayar | Varsayılan | Etki |
|---|---|---|
Post types | Post | Editörlerin seçebileceği yazı türleri ("Editors can only pick posts of these types."). En fazla 10 seçin. Bilinmeyen türler atılır; hiçbiri kalmazsa |
Düzenleme ekranında editör Search posts… kutusuna yazar ve bir sonuca tıklar. Arama, editörün okuyabileceği yayımlanmış, zamanlanmış, taslak, bekleyen ve özel yazıları kapsar; her seferinde 20 sonuç gösterilir ve başlığın yanında yazı türü (yayımlanmamışsa durumu da) yer alır.
Kaydedilen. Tek bir kimlik. Birden çok değer gönderilirse sonuncusu kullanılır. Yazı mevcut, izin verilen bir türde ve geçerli kullanıcı tarafından okunabilir olmalıdır; bir editör göremediği bir taslağı bağlayamaz. Önceden bağlanmış bir yazı, editör onu göremese bile bağlı kalır; böylece düzenleme bağlantıyı sessizce koparmaz.
Yazdırılan. Ziyaretçiler açabiliyorsa yazının başlığı, yazıya bağlantı olarak yazdırılır. Yazıyı açamayan ziyaretçiler (taslak, özel veya parola korumalı öğe) hiçbir şey görmez; okuyabilen kullanıcılar düz başlığı görür.
$id = wpmcf_get_field( 'review', 'product' ); // 708 (int) or null
if ( $id ) {
printf( '<a href="%s">%s</a>', esc_url( get_permalink( $id ) ), esc_html( get_the_title( $id ) ) );
}
wpmcf_the_field( 'review', 'product', null, [ 'wrap' => false ] );
// <a href="http://example.com/blue-widget/">Blue widget</a>[wpmcf_field group="review" field="product" wrap="false"]Page link
Şu alan gibi çalışır: Post object, ancak bağlantı metni olarak yazının adresini (kalıcı bağlantı) yazdırır; düz "bu sayfaya git" bağlantıları için kullanışlıdır. Aynı Post types ayarını kullanır (varsayılan Post; sayfalara bağlamak için Page yapın).
[wpmcf_field group="review" field="landing" wrap="false"]
→ <a href="http://example.com/pricing/">http://example.com/pricing/</a>Yalnızca ziyaretçilerin açabildiği yazılar yazdırılır; taslak hiçbir şey yazdırmaz (kimliği saklanmış olsa bile). Şablonlarda kimliği get_permalink() ile kullanın:
$id = wpmcf_get_field( 'hero', 'landing' );
if ( $id && 'publish' === get_post_status( $id ) ) {
echo '<a href="' . esc_url( get_permalink( $id ) ) . '">' . esc_html( get_the_title( $id ) ) . '</a>';
}Bir alanı veri kaybetmeden Post object ile Page link arasında değiştirebilirsiniz.
Relationship
Yazılardan birkaçını seçer ve onları seçilen sırayla tutar. Seçicide sürükleme tutamacı yoktur: sırayı değiştirmek için bir öğeyi kaldırın (×) ve yeniden seçin.
Ayar | Varsayılan | Etki |
|---|---|---|
Post types | Post | Yukarıdaki gibi. |
Maximum items | 0 | 0 sınır yok demektir, en fazla 100. Daha düşük bir sayı editörün daha fazla seçmesini engeller ve fazla kimlikler kaydederken atılır. |
Kaydedilen. Verilen sırada, izin verilen türlerdeki mevcut ve okunabilir yazıların benzersiz kimliklerinden oluşan bir liste. Boş bir seçim alanı temizler.
Yazdırılan.
<ul class="wpmcf-relationship">
<li><a href="http://example.com/page-one/">Page one</a></li>
<li><a href="http://example.com/page-two/">Page two</a></li>
</ul>Yalnızca ziyaretçilerin açabildiği yazılar listelenir; hiçbiri herkese açık değilse hiçbir şey yazdırılmaz.
$ids = wpmcf_get_field( 'course', 'lessons' ); // [708, 709] (int[]), or [] if empty
if ( $ids ) {
$lessons = get_posts( [ 'post__in' => $ids, 'orderby' => 'post__in', 'post_type' => 'any', 'posts_per_page' => count( $ids ) ] );
foreach ( $lessons as $lesson ) {
echo '<h3>' . esc_html( get_the_title( $lesson ) ) . '</h3>';
}
}orderby => post__in, editörün seçtiği sırayı korur.
CSV içe aktarmaları virgülle ayrılmış yazı kimliklerini alır (708,709,710).
Taxonomy
Tek bir taksonominin (kategoriler, etiketler, özel bir taksonomi) terimlerini seçer. Kimlikler bu alanda saklanır; isteğe bağlı olarak yazının gerçek terimleri de eşitlenir.
Ayar | Varsayılan | Etki |
|---|---|---|
Taxonomy | Category | Yönetim ekranı olan herhangi bir taksonomi. Bilinmeyen bir ad Category'ye döner. |
Appearance | Checkboxes | Checkboxes (birden çok terim), Radio buttons (tek terim), Select (tek terim) veya Search (arama kutusuyla birden çok terim). Checkboxes ve Select, alt terimleri üst terimlerinin altında girintili gösterir. |
Maximum terms | 0 | Search görünümü için: 0 sınır yok demektir, en fazla 100. Radio buttons ve Select her zaman tek terim alır. |
Save terms | Off | "Also assign the chosen terms to the post." Alan kaydedildiğinde yazının o taksonomideki terimleri seçilenlerle değiştirilir (boş seçim terimleri temizler). Taksonomiyi kullanan bir yazı türü ve terim atama izni gerekir. |
Load terms | Off | "Show the post's current terms as the value." Düzenleme ekranı alanı, saklanan liste yerine yazının mevcut terimleriyle açar. |
Notlar:
- Terim sayısı 300'den fazla olan bir liste tam gösterilmez; alan bunun yerine arama kutusuna geçer (ön yüz formlarında "This list is too long to show here." gösterilir).
- Save terms ve Load terms, yazılardaki üst düzey taksonomi alanlarında çalışır. Düzenleme ekranında, REST API'de ve
wpmcf_update_field()ile çalışırlar. - Load terms yalnızca düzenleme ekranının gösterdiğini değiştirir. Alanda saklanan değer (
wpmcf_get_field()tarafından döndürülen değer) yazı kaydedildiğinde güncellenir. Terimler başka yerde değiştirilirsewpmcf_get_field(),wp_get_object_terms()sonucundan farklı olabilir. Gerçek terimler önemliyse onları WordPress işlevleriyle okuyun.
$term_ids = wpmcf_get_field( 'project', 'topics' ); // [12, 13] or []
$names = wp_list_pluck( get_terms( [ 'include' => $term_ids, 'taxonomy' => 'category', 'hide_empty' => false ] ), 'name' );Yazdırılan. Virgülle ayrılmış terim adları; taksonominin herkese açık arşivleri varsa her ad arşivine bağlanır.
[wpmcf_field group="project" field="topics" wrap="false"]
→ <a href="http://example.com/category/news/">News</a>, <a href="http://example.com/category/news/local/">Local</a>CSV içe aktarmaları virgülle ayrılmış terim kimliklerini, kısa adlarını (slug) veya adlarını alır.
User
İsteğe bağlı olarak yalnızca bazı roller için kullanıcıları seçer.
Ayar | Varsayılan | Etki |
|---|---|---|
Roles | hiçbiri işaretli değil | "Editors can only pick users with these roles. None ticked means every role." |
Maximum users | 0 |
|
- Sonuç her zaman bir listedir, Maximum users
1olsa bile:[19],19değil. Şunu kullanın:$ids[0] ?? null. - Kullanıcı araması oturum açma adı, nicename ve görünen adla eşleşir, e-posta adresleriyle asla. Yalnızca kullanıcıları listeleyebilenler arama yapabilir.
- Var olmayan veya izin verilmeyen role sahip kullanıcıların kimlikleri kaydederken atılır.
$ids = wpmcf_get_field( 'project', 'owners' ); // [1, 19]
foreach ( (array) $ids as $user_id ) {
$user = get_userdata( $user_id );
if ( $user ) {
echo esc_html( $user->display_name );
}
}[wpmcf_field group="project" field="owners" wrap="false"] → Ada, FatihYazdırılan çıktı, virgülle ayrılmış görünen adlardır; bağlantı içermez. CSV içe aktarmaları virgülle ayrılmış kullanıcı kimliklerini veya oturum açma adlarını alır.
Sorun giderme
- Seçicim hiçbir şey listelemiyor. Alanın Post types (veya Roles) filtresi öğeleri dışarıda bırakıyor ya da editörün onları okuma izni yok.
- İlişkili sayfa sitede hiçbir şey yazdırmıyor. Yazı taslak, özel veya başka şekilde herkese açık değil. Kimlikler saklanır ama yalnızca herkese açık öğeler yazdırılır.
wpmcf_get_field()silinmiş bir yazının kimliğini döndürüyor. Hedef silindiğinde saklanan kimlikler temizlenmez;get_post( $id )ile test edin.- Post object ile bir sayfa bağladım ve kaydedilmiyor. Alanın Post types ayarı hâlâ Post. Page ekleyin.
Hâlâ takıldınız mı? Destek ile iletişime geçin