web-dev-qa-db-ja.com

タイトルを表示するさまざまな方法

私はWordPressの初心者で、まだチュートリアルから学んでいますが、それらの相反する方法で混乱しています。タイトルをリンクにする2つの方法の違いは何ですか。

<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>');
?>

それはパフォーマンスの問題ですか?またはセキュリティ?または何?

ありがとう。

編集:

関数the_permalink()esc_urlの機能が埋め込まれているのに対し、get_permalinkには埋め込まれていないことを私は知っています。だから私の場合、まだ何か違いはありますか?

5
Emad Aldeen

2番目の形式も便利です。

  • third パラメータを使うこともできます。

    the_title( $before, $after, $echo ); 
    

    タイトルを変数に割り当てます。

    これが例です:

    $title = the_title( '<h1 class="entry-title">', '</h1>', false );
    
  • これは<?php ?>デリミタの使用を減らすのにも役立ちます。

    これはTwenty Fifteenテーマの 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; ?>
    
3
birgire

あなたが提供したコードの最初のセットに行きます:

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

簡単に言えば、使用する方がはるかにクリーンで簡単です。すでに述べたように、the_permalink()はすでにesc_url()機能をカバーしています。では、いずれかの機能が面倒を見ているのに、なぜもっとコードを書く必要があるのでしょうか。この場合は少ないです。

WordPressでほとんどのことをするには複数の方法があります。それとも、まったく方法がありません。

あなたの最初の例はもっと理にかなっています。 2つ目は、メリットがないために不必要に複雑に思えます。

0
vancoder