Kısa kodda bir ']' kelimesinden nasıl çıkabilirim?


17

Kısa bir kodda sağ köşeli ayraçtan nasıl kaçarım?

Noktaları kodlanmış bir Google Harita eklentisi üzerinde çalışıyorum. Bazen çokgenlerin içinde] vardır, bu da WP'nin kısa kodun sonu olduğunu düşünmesini sağlar.

Örneğin:

[my_shortcode latitude='36.93'  longitude='-72.98' encoded_points='ortlF~g]tM?cZEH`z]}|@DQfi]' ]

]WP için bir soruna neden olmayan denedim , ancak Google harita kodum için bir soruna neden oluyor. Değiştirmek için Regex kullanabilirsiniz], ama belki daha basit bir yolu var. Kısa kodun bir kaçış karakteri var mı?

Yanıtlar:


18

Kısa kodlar için resmi bir kaçış sözdizimi bilmiyorum ve büyük olasılıkla bir tane yok.

Wordpress kısa kodları ayrıştırdığında [ ve ] kelimesini arar . Bir kısa kod içinde köşeli parantez kullanmak istiyorsanız, ilgili html ASCII varlıklarını kullanmak bunlardan kaçar.

Yani değiştirilmesi [ ile [ve ] ile ]. Wordpress kısa ]kodun sonu olarak tanınmaz .

Bu senin amaca hizmet olsun belli ki dönüştürülür alır olmadığına bağlıdır ] Google Maps API geçirilmeden önce veya beklendiği gibi API tutamaklar olsun. Bununla ilgili hiçbir deneyimim yok, bu yüzden söyleyemem.


Cevabınız için teşekkür ederim. Soruma göre, '& # 93;' bir kod bloğunda "]" olarak çıktı. Sorumu düzenledim. HTML varlığı WP için çalışır, ancak Google Haritalar için çalışmaz. HTML varlıklarını değiştirmek için Regex kullanmam gerekecek. Yardımın için çok teşekkür ederim.
Laxmidi

@Laxmidi Yukarıdaki yukarıdaki “tahmin ”im kesinlikte kaçış karakteri sınırlarının olmadığını - yanlış bilgi vermemek için temkinli olmak istedi. Eğer olsaydı , Shortcode API'sındaki codex makalesinin bundan bahsedeceğinden eminim. Bence sonradan değiştirmek en iyi seçenektir. Yine de bir karakter için normal ifadeye mi ihtiyacınız var? Bence str_replace()işi de bitirmeliyim. Olsaydı daha az kaynak yoğun olurdu.
Johannes Pille

1
@JohannesPille merhaba bu bir ihtiyar, ama ben de [] yerine & # 93; WP'de ilk kez tasarruf ve çalışıyor, ancak yazı / sayfa düzenlenirken WP & # 93; içine]. (kısa kod düğmelerinde bir google etkinlik izleme için buna ihtiyacınız var) Saygılarımızla
alex

@Alex'in dediği gibi, görsel sekmeye geçip kod sekmesine dönerseniz, tinyMCE'nin özel karakterleri tekrar [] olarak değiştirdiğini ve ardından kodu kıracağını göreceksiniz.
Saulo Padilha


2

Johannes Pille'in cevabına dayanarak, kısa kod parametrelerinde metin kullanmak için köşeli parantezlerden kaçmak için wp işlevi vardır:

function my_esc_brackets($text = ''){
    return str_replace( [ "[" , "]" ] , [ "[" , "]" ] , $text );
}

Çoğu zaman insanlar metin parametreleri için kısa kodun $ içeriğini kullanmanızı önerir, ancak kısa kodun bu tür birçok metin parametresine sahip olduğu durumlar vardır.


2

Burada resmi bir sayfa var gibi görünüyor: Kaçan Kısa Kodlar

Ayıkla :

Bunu yapmak için, sadece bir yerine iki grup küme kullanarak kısa koddan kaçmanız gerekir. Bunu yazınızda görüntülemek için:

[Galeri]

Bunu yazarsınız:

[[Galeri]]


0

Url ile oynamıyorsanız bile , attribute_value değerinizde [ve] yerine % 5B ve% 5D yerine urldecode (öznitelik_değer) kullanın .

Kodunuz şöyle görünebilir:

Wp sayfanızda: [my_shortcode myattr="%5Bmyattribute_value%5D"]

Ardından, kısa kod fonksiyonunuzda şunu yapın:

 $origvalue=urldecode($atts['myattr']);

Bu, $ origvalue içindeki [ve] karakterleri geri yükleyecektir, böylece $ origvalue artık şunları içerir: [myattribute_value]

İPUCU: url ile oynuyorsanız, aynısını yapın, ancak işlev koduna aşağıdakileri ekleyin:

$urlvalue = urlencode($origvalue);

Bu net değilse: EVET, bir url doğru bir parçası oluşturmak için urlencode (urldecode ($ atts bazı değer)) yapıyorum.

Oldukça basit, umarım bu yardımcı olur.

Pierre


-1

Bu eski bir soru, ama burada css kullanarak bir çözüm var. Diş telleri yerine, karakterleri bir açıklık içine alın, şöyle:

<span class="bracket">some string</span>

ardından bunu tema stil sayfasına ekleyin:

span.bracket:before {
  content: '['
}
.colored-blocks span.bracket:after {
  content: ']'
}

sonuç şöyle görünecektir:

[some string]


3
Soru, ]içeriğin nasıl gösterileceği hakkında değil içeriğin bir parçası olarak ekleme ile ilgilidir .
Mark Kaplun
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.