2

我正在尝试使用 WordPress 循环实现一个按标签显示博客文章的页面。我遇到的问题是将标签设置为页面标题。这是我到目前为止尝试过的代码。

<?php query_posts('tag=aetna'); ?>
<?php  if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<div class="page-content ">
<?php the_content() ;?>
</div>

<?php endwhile; endif ;?>

这段代码工作得很好。但是,当我尝试将标签分配给页面标题时,它不起作用。这是我为此尝试过的代码。我是 PHP 新手,所以我希望这只是一个愚蠢的语法。

<?php $tag=strtolower(the_title()); ?>
<?php query_posts('tag=$tag'); ?>
<?php  if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<div class="page-content ">
<?php the_content() ;?>
</div>

<?php endwhile; endif ;?>

非常感谢您为我提供的任何帮助。谢谢!

4

3 回答 3

2

在 PHP 中使用单引号时,变量不会插入到字符串中。

尝试使用双引号:

<?php query_posts("tag=$tag"); ?>

更多信息在这里: PHP中单引号和双引号字符串有什么区别?

于 2013-10-16T17:44:42.147 回答
1
$tag=strtolower(the_title());

应该

$tag=strtolower(get_the_title());

标题(); 回显输出,同时get_the_title();返回它参考链接以获取更多信息

于 2013-10-16T17:46:30.557 回答
0

您在循环之前调用 the_title() 。这是一个只能在循环内部调用的函数。

如果要使用该功能,则必须创建两个查询,一个分配 $tag

<?php $tag=strtolower(the_title()); ?>

其余的在另一个循环中

<?php query_posts('tag=$tag'); ?>
<?php  if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<div class="page-content ">
<?php the_content() ;?>
</div>

<?php endwhile; endif ;?>
于 2013-10-16T21:51:56.720 回答