MENU

permalink_anchor()

permalink_anchor() は、投稿やページのパーマリンクを含むHTMLアンカータグを生成するためのカスタム関数です。

この関数を使うと、投稿やページへのリンクをシンプルに表示することができ、SEOに適したアンカーリンクの出力が可能です。

目次

機能の説

permalink_anchor() は、投稿やページのパーマリンクとタイトルを使って、HTMLの <a> タグを生成します。

リンクのURLやリンクテキストが一貫して出力され、ユーザーと検索エンジンの両方にとって適切な内部リンクを作成するのに役立ちます。

  • アンカーテキスト: 投稿タイトルやカスタムテキストを指定可能
  • パーマリンク: WordPressの投稿・ページURLを動的に取得して使用

シンプルなコード例

<?php 
function permalink_anchor($text = '') {
    $url = get_permalink();
    $title = get_the_title();
    $anchor_text = $text ?: $title;
    return "<a href='{$url}'>{$anchor_text}</a>";
}
echo permalink_anchor();

出力

<a href="https://example.com/sample-post">Sample Post</a>

使い方の解説

permalink_anchor() は、投稿やページへのリンクを自動的に生成する関数です。主にテンプレートファイルで使用され、投稿の詳細ページへのリンクを提供するために便利です。

  • デフォルトのアンカーテキスト: 投稿やページのタイトルが使われます。
  • カスタムテキストの使用: 引数に任意のテキストを指定することで、アンカーテキストを変更可能です。

カスタムアンカーテキストを使用する例

<?php 
echo permalink_anchor('こちらの記事を読む');
?>

出力

<a href="https://example.com/sample-post">こちらの記事を読む</a>

permalink_anchor() 関数に 'こちらの記事を読む' を渡すことで、投稿タイトルではなく、指定したカスタムテキストがアンカーテキストとして表示されます。

一緒に使うことが多い関連タグ

get_permalink()

get_permalink() は、特定の投稿やページのパーマリンクを取得するテンプレートタグです。permalink_anchor() の内部でも、この関数を使ってURLを取得しています。

<?php 
echo get_permalink();
?>

出力

https://example.com/sample-post

get_the_title()

get_the_title() は、投稿またはページのタイトルを取得するテンプレートタグです。permalink_anchor() でアンカーテキストとして使用されます。

<?php 
echo get_the_title();
?>

出力

Sample Post

get_permalink()get_the_title() を組み合わせた例

<?php 
$url = get_permalink();
$title = get_the_title();
echo "<a href='{$url}'>{$title}</a>";
?>

出力

<a href="https://example.com/sample-post">Sample Post</a>

get_permalink()get_the_title() を直接使って、HTMLアンカータグを出力する例です。

追加情報を取得したい場合

permalink_anchor() の拡張として、投稿IDターゲット属性 を指定する機能を追加することができます。これにより、内部リンクの開き方をカスタマイズできます。

投稿IDを指定してリンクを生成する例

<?php 
function permalink_anchor_by_id($post_id, $text = '') {
    $url = get_permalink($post_id);
    $title = get_the_title($post_id);
    $anchor_text = $text ?: $title;
    return "<a href='{$url}'>{$anchor_text}</a>";
}
echo permalink_anchor_by_id(123, '指定の投稿');
?>

出力

<a href="https://example.com/sample-post">指定の投稿</a>

get_post() で取得できる投稿情報

<?php 
$post = get_post(123);
echo $post->post_title;
echo $post->post_content;
?>

出力できる情報

  • post_title: 投稿のタイトル
  • post_content: 投稿の本文
  • post_date: 投稿の公開日

想定されるトラブル

投稿が存在しない場合にリンクが無効になる

指定した投稿IDが存在しない場合、無効なURLが生成されます。

解決方法

投稿が存在するかを確認してからリンクを生成します。

<?php 
if (get_post_status(123)) {
    echo permalink_anchor_by_id(123, '指定の投稿');
} else {
    echo 'この投稿は存在しません。';
}
?>

特定の投稿タイプに対応できない

カスタム投稿タイプのURLが正しく取得できないことがあります。

解決方法

第2引数に投稿タイプを指定します。

<?php 
$url = get_post_type_archive_link('custom_post_type');
echo "<a href='{$url}'>カスタム投稿タイプ</a>";
?>

Q&A

permalink_anchor() のアンカーテキストを変更するには?

関数に第1引数としてカスタムテキストを渡してください。

echo permalink_anchor('この記事を読む');

特定の投稿IDにリンクすることはできますか?

投稿IDを使った拡張関数を利用するか、get_permalink($post_id) を使用します。

外部リンクを開くために target="_blank" を追加できますか?

関数をカスタマイズし、HTML属性を追加します。

function permalink_anchor_with_target($text = '', $target = '_self') {
    $url = get_permalink();
    $title = get_the_title();
    $anchor_text = $text ?: $title;
    return "<a href='{$url}' target='{$target}'>{$anchor_text}</a>";
}
echo permalink_anchor_with_target('こちらをクリック', '_blank');

まとめ

permalink_anchor() は、WordPressの投稿やページへのリンクを簡単に生成する便利なカスタム関数です。

SEOに配慮したリンクの生成ができ、get_permalink()get_the_title() などのテンプレートタグと組み合わせて柔軟なリンク管理が可能です。

また、ターゲット属性や投稿IDを使ったカスタマイズにより、用途に応じた内部リンクや外部リンクの実装も容易です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次