首页 文章

在字符串php the_title WordPress中获取第一个单词

提问于
浏览
2

我试图将wordpress Headers 简化为第一个单词 . 对于一个名为“John Doe”的页面,我想在页面的某处显示一个“关于约翰”的子 Headers ,所以我想从 Headers 中获取第一个单词 .

有没有办法用PHP做到这一点?

谢谢!

UPDATE:
谢谢你的回答!我尝试了以下代码,但它似乎没有工作 . 它仍然与完整的 Headers 相呼应 . 有什么建议?

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

7 回答

  • 0

    这很容易:

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

    要么

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

    未经测试,但应该工作:)

    希望这有用:)

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

    或在您的模板文件中

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

    按空间爆炸并获得结果数组中的第一个元素

  • 8
    list($first_word) = explode(' ',$mystring);
    
  • 0

    你可以这样做:

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

    我想你可能会遇到一些Wordpress的特性 . the_title() ,默认情况下,只打印出 Headers 并且不返回任何内容 . 为了使其返回 Headers 字符串而不是打印它,您必须将 the_title() 的第三个参数设置为true .

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

    一旦你拥有它,那么你可以摆脱第一个单词并手动回声 . 如果您使用的是PHP 5.3,则可以使用 strstr() 在一行中完成此操作:

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

    如果你有PHP <5.3,你可以使用 explode()

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

    我建议完全避免使用此字符串解析,并使用更通用的方法来定义页面的辅助 Headers .

    您应该使用WordPress的Post Meta系统来定义名称为“subtitle”的自定义元字段,然后在模板中调用该字段 . 这样你就可以逐页决定你想要字幕的内容,而不是被锁定在帖子 Headers 和副 Headers 之间的特定关系中 . 这可能不会让您的生活更加复杂,并且会显着简化它 .

    您可以使用帖子编辑屏幕底部的“自定义字段”部分将帖子元添加到页面或帖子中 . 您可以在主题中显示这些字段,如下所示:

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

    显然你最好先检查它是否存在,给你这样的东西:

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

    More details on the codex.

  • 0

    有一个字符串函数(strtok),可用于根据某些分隔符将字符串拆分为较小的字符串(标记) . 出于此线程的目的,可以通过对空格字符上的字符串进行标记来获得 Test me more 的第一个单词(在第一个空格字符之前定义为任何内容) .

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

    有关更多详细信息和示例,请参阅strtok PHP manual page .

相关问题