Dize php ilk kelime olsun the_title WordPress

6 Cevap php

Ben sadece ilk sözcüğü bir wordpress başlık kısaltmak için çalışıyorum. "John Doe" adında bir sayfa için ben "John hakkında" ben sadece başlıktan ilk kelimeyi almak istiyorum diyor sayfasında bir yere bir alt başlık var istiyorum.

PHP ile bunu yapmak için bir yolu var mı?

Teşekkürler!

UPDATE:
Thanks for your answers! I tried the following code but it doesn't seem to be working. It still echoes the full title. Any suggestions?

<?php   
   $title = the_title();
   $names = explode(' ', $title);
   echo $names[0];
?>

6 Cevap

Bu çok kolay:

<?php
$title = get_the_title(); // This must be!, because this is the return - the_title would be echo
$title_array = explode(' ', $title);
$first_wveyad = $title_array[0];

echo $first_wveyad;
?>

veya

<?php
$title = current(explode(' ', get_the_title()));

echo $title;
?>

untested, but should wveyak :)

Bu yardımcı olur umarım :)

$first_word = current(explode(' ', $title  ));

veya şablon dosyasında

<?php echo current(explode(' ', $title  )) ?>

boşluk patlayabilir ve dizi çıkan ilk öğesi almak

Böyle yapabilirsiniz:

$words = explode(' ', $the_title_here);
echo $words[0];

Ben muhtemelen burada Wordpress huyların bazı çalıştırıyorum düşünüyorum. the_title() , by default, just prints out the title and returns nothing. In order to make it return the title string instead of printing it, you have to set the third parameter of the_title() true.

//fetch the title string into a variable
$title = the_title('','',true);

Eğer buna sahip sonra, o zaman ilk kelimenin kurtulmak ve elle yankı. PHP 5.3 kullanıyorsanız, sizinle bir satırda bu başarmak strstr() yapabilirsiniz:

echo strstr($title," ",true);

PHP explode():

$parts = explode(' ',$title);
echo $parts[0];

Ben tamamen bu ayrıştırma dize kaçınarak ve sayfa için bir ikincil başlık tanımlamak için daha genel bir yaklaşım kullanarak öneriyoruz.

Sen şablonunda bu alanı sonra aramak, altyazı 'gibi bir isim ile özel bir meta alanı tanımlamak post Meta sistemi' WordPress kullanmanız gerekir. Bu şekilde size altyazı oldukça sonrası başlık ve alt arasında belirli bir ilişki içine kilitlenmiş olmaktan çok, olmak istediğiniz bir sayfa-sayfa dayanarak karar verebilir. Bu muhtemelen hayat daha karmaşık hale olmayacak ve önemli ölçüde basitleştirmek olacaktır.

Sen sonrası düzenleme ekranının altındaki "Özel Alanlar" bölümünü kullanarak sayfa veya sonrası için yazılan meta ekleyin. Bu gibi tema bu alanları görüntülemek:

<?php echo get_post_meta($post->ID, $meta_key, 1);?>

Açıkçası muhtemelen size böyle bir şey vererek, ilk var kontrol daha iyi olurdu:

<?php if ( $subtitle = get_post_meta($post->ID, $meta_key, 1) ) 
    echo "<h3>$subtitle</h3>";
?>

More details on the codex.

(tokens), bazı ayırıcı (ler) dayalı küçük dizeleri bir dize bölmek için kullanılan bir dize işlevi (strtok) vardır. Bu konu amaçları için, ilk kelime (birinci boşluk karakterinden önce bir şey olarak tanımlanır) Test me more boşluk karakteri tokenizing dize ile elde edilebilir.

<?php
$value = "Test me more";
echo strtok($value, " "); // Test
?>

Daha fazla bilgi ve örnekler için strtok PHP manual page bkz.