显示标题的不同方式

时间:2016-09-14 作者:Emad Aldeen

我是WordPress的新手,我仍在从教程中学习,但我对他们矛盾的方式感到困惑。这两种链接标题的方式有何区别:

<h1>
    <a href="<?php the_permalink(); ?>">
    <?php the_title(); ?>
    </a>
</h1>
以及

<?php the_title(sprintf(
            \'<h1><a href="%s">\',
            esc_url(get_permalink())),
            \'</a></h1>\');
?>
这是性能问题吗?还是保安?还是怎样

谢谢

Edit:

我知道函数the_permalink() 已嵌入esc_url 功能,而get_permalink 没有。那么在我的情况下,还有什么区别吗?

3 个回复
最合适的回答,由SO网友:birgire 整理而成

第二种形式也很方便:

我们还可以使用third 参数:

the_title( $before, $after, $echo ); 
为变量指定标题。

下面是一个示例:

$title = the_title( \'<h1 class="entry-title">\', \'</h1>\', false );
这也有助于减少<?php ?> 分隔符。

这是一个example 来自《二十一五》主题

 if ( is_single() ) :
     the_title( \'<h1 class="entry-title">\', \'</h1>\' );
 else :
     the_title( sprintf( \'<h2 class="entry-title"><a href="%s" rel="bookmark">\', esc_url( get_permalink() ) ), \'</a></h2>\' );
 endif;
但是,当然有各种方法可以去除这些if/else部分。

以下是另一种比较形式:

<?php if( is_single() ) : ?>
    <h1 class="entry-title"><?php the_title(); ?></h1>
<?php else : ?>
    <h2 class="entry-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<?php endif; ?>

SO网友:Ethan O\'Sullivan

使用您提供的第一组代码:

<h1>
    <a href="<?php the_permalink(); ?>">
    <?php the_title(); ?>
    </a>
</h1>
简单地说,它更干净,使用更简单。正如你已经提到的,the_permalink() 已涵盖esc_url() 功能,那么当其中一个函数处理它时,为什么需要编写更多的代码呢?在这种情况下,越少越好。

SO网友:vancoder

在WordPress中,有多种方法可以完成大多数事情。要么那样,要么根本没有办法。

您的第一个示例更有意义。第二种方法似乎不必要地复杂,没有任何益处。

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?