Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
li之外的PHP文本_Php_Wordpress - Fatal编程技术网

li之外的PHP文本

li之外的PHP文本,php,wordpress,Php,Wordpress,我正在构建一个wordpress主题,由于某些原因,当我查看源代码时,我的页面列表显示在li之外 <ul class="tabs"> <?php while ( $queryObject->have_posts()) : $queryObject->the_post(); echo sprintf('<li>%s</li>', the_title()); endwhile;

我正在构建一个wordpress主题,由于某些原因,当我查看源代码时,我的页面列表显示在li之外

<ul class="tabs">
    <?php 

        while ( $queryObject->have_posts()) : $queryObject->the_post(); 
            echo sprintf('<li>%s</li>', the_title());
        endwhile; 

    ?>
</ul>
当我在chrome的inspector中查看源代码时

<ul class="tabs">
    Deans’ Corner<li></li>
    Education Plan<li></li>
    Counselors’ Corner<li></li>
</ul>
    院长角
  • 教育计划
  • 辅导员角

我错过了一些简单的东西

看看
标题()的文档

显示或返回当前文章的标题

[……]

$echo

(布尔值)(可选)显示标题(TRUE)或返回标题以在PHP中使用(FALSE)

默认值:TRUE


title()
采用可选参数
$echo
,该参数决定是返回还是回显页面标题。由于您没有填写,并且默认为echo选项,因此您的代码不起作用。

请查看
标题()的文档:

显示或返回当前文章的标题

[……]

$echo

(布尔值)(可选)显示标题(TRUE)或返回标题以在PHP中使用(FALSE)

默认值:TRUE

title()
采用可选参数
$echo
,该参数决定是返回还是回显页面标题。由于您没有填充它,并且它默认为echo选项,因此您的代码无法工作。

如果_title()出现回音,您将无法将其直接用于sprintf()

因此,您可以只使用HTML

<li><?= the_title(); ?></li>

  • 下面的例子是不必要的,因为正如Timosta在回答中指出的,_title()的可选参数

    或者,如果需要将_title()用作函数参数,则可以使用输出缓冲:

    ob_start()
    the_title();
    $title = ob_get_clean();
    echo sprintf('<li>%s</li>', $title);
    
    ob_start()
    _title();
    $title=ob_get_clean();
    echo sprintf(“
  • %s
  • ”,$title);
    如果_title()出现回声,您将无法将其直接用于sprintf()

    因此,您可以只使用HTML

    <li><?= the_title(); ?></li>
    

  • 下面的例子是不必要的,因为正如Timosta在回答中指出的,_title()的可选参数

    或者,如果需要将_title()用作函数参数,则可以使用输出缓冲:

    ob_start()
    the_title();
    $title = ob_get_clean();
    echo sprintf('<li>%s</li>', $title);
    
    ob_start()
    _title();
    $title=ob_get_clean();
    echo sprintf(“
  • %s
  • ”,$title);
    问题在于默认情况下,
    标题()会回显标题,而不是返回标题。实际上,您可以在标题前后指定要回显的内容,因此无需使用
    sprintf()
    。 这应该起作用:

    <ul class="tabs">
        <?php 
    
            while ( $queryObject->have_posts()) : $queryObject->the_post(); 
                the_title('<li>', '</li>');
            endwhile; 
    
        ?>
    </ul>
    
    检查WordPress代码:

    问题在于默认情况下,
    标题()会回显标题,而不是返回标题。实际上,您可以在标题前后指定要回显的内容,因此无需使用
    sprintf()
    。 这应该起作用:

    <ul class="tabs">
        <?php 
    
            while ( $queryObject->have_posts()) : $queryObject->the_post(); 
                the_title('<li>', '</li>');
            endwhile; 
    
        ?>
    </ul>
    
    检查WordPress代码:

    我猜
    标题()
    实际上是回显标题,而不是返回标题。可能在
    标题()
    中发生了一些事情,但您还没有发布这些。@HoboSapiens这是一个wordpressfunction@jrock2004在问题中提出解决办法不是个好主意。如果下面没有回答您的问题,请添加您自己的答案。我猜
    标题()
    实际上是回显标题而不是返回标题。可能在
    标题()中发生了一些事情,“但是你还没有贴出来。”霍博萨皮恩斯说,这是一个wordpressfunction@jrock2004在问题中提出解决办法不是个好主意。如果下面没有什么能回答你的问题,那就加上你自己的答案。是的,我刚开始读这个。我能够完成标题(“
  • ”,“
  • ”);总之,要这样做:
    标题(“
  • ”、“
  • ”)
    或使用实际用于返回标题的方法:
    获取标题()。否则,echo就隐藏在一个函数后面,这个函数的标题绝不表示任何东西都将被
    echo
    ed。我能够完成标题(“
  • ”,“
  • ”);总之,要这样做:
    标题(“
  • ”、“
  • ”)
    或使用实际用于返回标题的方法:
    获取标题()。否则,echo将隐藏在一个函数后面,该函数的标题绝不表示任何内容将被
    echo
    ed。这已在以前的回答/评论中介绍过。这已在以前的回答/评论中介绍过。