WYSIWYG editor, oEmbed ve Link
4 dk okuma
Bu sayfa, düz metinden fazlası olan içerik için üç türü kapsar: biçimlendirilmiş metin için WYSIWYG editor, gömülü medya için oEmbed ve kendi metni ile hedefi olan bir düğme için Link.
WYSIWYG editor
Biçimlendirilmiş içerik için zengin metin düzenleyicisi (Visual ve Text sekmeleri olan WordPress'in klasik düzenleyicisi): kalın metin, listeler, bağlantılar ve medya.
Tür kimliği |
|
Varsayılan sütun |
|
Döndürür | saklanan HTML dizesi veya |
Çıktısı | paragrafları eklenmiş ve shortcode'ları çalıştırılmış HTML |
Tür ayarları
Ayar | Varsayılan | Etki |
|---|---|---|
Toolbar | Full | Full düzenleyici araç çubuğunun tamamını gösterir; Basic kısa bir araç çubuğu gösterir. |
Show the Add Media button | On | Editörlerin ortam kitaplığından görsel eklemesini sağlar. Düğme yalnızca dosya yükleyebilen kullanıcılara gösterilir. |
Kaydederken temizleme
- HTML, yazı içeriği gibi süzülür (
wp_kses_post()): betikler, iframe'ler, olay nitelikleri ve diğer güvenli olmayan işaretlemeler kaldırılır. Kaldırılan bir etiketin içindeki metin kalır (<script>alert(1)</script>sonucundaalert(1)kalır). - Yalnızca boşluktan oluşan bir değer alanı boş kaydeder.
- Yazı düzenleyemeyen kullanıcılar (ön yüz formundaki misafirler ve aboneler) shortcode ekleyemez:
[ve]karakterleri HTML varlıkları olarak kaydedilir.
Şablonda kullanım
$html = wpmcf_get_field( 'page_extras', 'intro' );
// "<p>Hello <strong>world</strong></p> [gallery]" (as stored: no automatic paragraphs, shortcodes not run)
echo wp_kses_post( wpautop( $html ) ); // add paragraphs, no shortcodes
echo do_shortcode( wpautop( wp_kses_post( $html ) ) ); // what the field itself prints
wpmcf_the_field( 'page_extras', 'intro', null, [ 'wrap' => false ] );[wpmcf_field group="page_extras" field="intro" wrap="false"]Yazdırılan sonuç önce wpautop() işleminden geçer (boş satırlar <p> ve <br> olur), ardından kses ile süzülür ve shortcode'lar çalışır. Varsayılan sarmalayıcı <span class="wpmcf-field-value"> içindeki paragraflar geçerli HTML olmadığı için zengin metni wrap="false" ile (veya 'wrap' => false) yazdırın ve kendi öğenizin içine koyun.
Uzunluk kuralları (Min length, Max length) bu tür için yok sayılır: sunucu HTML'i asla kesmez.
Ön yüz formlarında (Pro) alan, HTML kabul eden düz bir textarea'dır.
oEmbed
Gömmeyi destekleyen bir sayfanın adresini (YouTube, Vimeo, X, Spotify ve WordPress'in bildiği diğer sağlayıcılar) saklar ve sağlayıcının gömme kodunu yazdırır.
Tür kimliği |
|
Varsayılan sütun |
|
Döndürür | URL dizesi veya |
Çıktısı | gömme (genellikle bir |
Tür ayarları
Ayar | Varsayılan | Etki |
|---|---|---|
Embed width | 0 | Piksel cinsinden en büyük genişlik, 0 ile 4000 arası. |
Embed height | 0 | Piksel cinsinden en büyük yükseklik, 0 ile 4000 arası. |
Nelerin kabul edildiği
Yalnızca http ve https adresleri. ftp://… reddedilir. Şeması olmayan metin tamamlanır (example.com/video, http://example.com/video olur) ve hiç adres olmayan bir dize anlamsız bir http://… adresine dönüşebilir; bu yüzden kaynak güvenilir değilse kendi kodunuzda doğrulayın.
Şablonda kullanım
$url = wpmcf_get_field( 'lesson', 'video' ); // "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
wpmcf_the_field( 'lesson', 'video', null, [ 'wrap' => false ] );
// <iframe title="…" width="1778" height="1000" src="https://www.youtube.com/embed/dQw4w9WgXcQ?feature=oembed" …></iframe>[wpmcf_field group="lesson" field="video" wrap="false"]Gömmeler bir kez alınır ve önbelleğe alınır: sağlayıcı yanıt verdiyse bir gün, vermediyse bir saat boyunca. Önbellek, wpmcf_oembed_… adlı geçici verilerden (transient) oluşur; URL, genişlik veya yükseklik değişirse yeni bir önbellek kaydı kullanılır. WordPress bir gömmeyi alamazsa, bunun yerine URL'ye düz bir bağlantı yazdırılır.
Düzenleme ekranı
Yer tutucusu https:// olan bir URL kutusu ve altında gömmenin canlı önizlemesi.
Link
Kendi bağlantı metni ve "yeni sekme" seçeneği olan bir URL; düzenleyicideki bağlantı iletişim kutusu gibi. Düğmeler ve harekete geçirici mesajlar için kullanın.
Tür kimliği |
|
Sütun |
|
Döndürür | bir dizi: |
Çıktısı | bir |
Tür ayarları | yok |
Düzenleme ekranı
Üç denetim: URL, Link text ve bir onay kutusu: Open in a new tab.
Saklanan ve döndürülen yapı
$link = wpmcf_get_field( 'hero', 'button' );
// [
// 'url' => 'https://example.org',
// 'title' => 'Learn more',
// 'target' => '_blank', // or '' for the same tab
// ]Bölüm | Temizleme |
|---|---|
| URL türü gibi: şema tamamlanır, güvenli olmayan şemalar kaldırılır. Kullanılabilir bir URL yoksa bağlantının tamamı boştur ( |
| Düz metin (etiketler kaldırılır). Boş olabilir. |
|
|
wpmcf_update_field() ayrıca düz bir dizeyi kabul eder ve onu URL sayar: wpmcf_update_field( 'hero', 'button', 'https://plain.org', $id ), boş title ve target ile url değerini kaydeder.
JSON nesneleri anahtarları farklı sırada geri gelebilir. Her parçayı anahtarıyla okuyun.
Yazdırma
$link = wpmcf_get_field( 'hero', 'button' );
if ( $link ) {
printf(
'<a class="btn" href="%s"%s>%s</a>',
esc_url( $link['url'] ),
'_blank' === $link['target'] ? ' target="_blank" rel="noopener"' : '',
esc_html( $link['title'] ?: $link['url'] )
);
}[wpmcf_field group="hero" field="button" wrap="false"]
→ <a href="https://example.org" target="_blank" rel="noopener">Learn more</a>Otomatik çıktı, target="_blank" rel="noopener" değerini yalnızca yeni sekme bağlantılarına ekler ve title boşsa bağlantı metni olarak URL'yi kullanır. format="url" veya format="html" geçirmek, bağlantı yerine parçaları virgülle birleştirerek yazdırır; bu yüzden bağlantılar için varsayılan auto biçimini koruyun.
Ayrıca WPM Field bloğu da bir Link alanı yazdırabilir (bkz. Bloklar ve blok bağlamaları). Kodda çıktı için Geliştirici API'si bölümüne bakın.
Sorun giderme
- WYSIWYG metnimde PHP'de paragraf yok.
wpmcf_get_field()saklananı döndürür.wpautop()ya dawpmcf_the_field()kullanın. - WYSIWYG metnimdeki shortcode'lar
[gallery]olarak görünüyor. Ham çıktı bunları çalıştırmaz;wpmcf_the_field()ve shortcode çalıştırır. - Video gömülmüyor, yalnızca bağlantı görünüyor. Sağlayıcı WordPress'in oEmbed listesinde değil, video özel veya istek başarısız oldu. Başarısız aramalar bir saat sonra yeniden denenir.
- Metin girdiğim hâlde Link alanım boş. Bir bağlantı için URL gerekir. Yalnızca bağlantı metni kaydedilmez.
Hâlâ takıldınız mı? Destek ile iletişime geçin