sticky_class() は、固定(先頭に表示)されている投稿に対して特定のクラスを付与するためのテンプレートタグです。
投稿を「注目の投稿」や「固定投稿」として設定した際、HTML要素にクラスを追加し、CSSなどで特別なスタイリングが可能になります。
機能の説明
sticky_class() は、投稿が固定されている場合に sticky クラスをその投稿の HTML タグに付与します。WordPressの管理画面から「この投稿を先頭に固定表示」に設定された投稿に対して適用されます。
- このクラスの用途:固定投稿を一般の投稿とは異なるデザインにしたい場合に利用します。
- 自動的に付与されるクラス:投稿が固定されている場合に stickyクラスが HTML 要素に付与されます。
シンプルなコード例
<article <?php sticky_class(); ?>>
    <h2><?php the_title(); ?></h2>
</article><article> 要素に sticky_class() を使用することで、固定投稿に自動的に sticky クラスが追加されます。CSSを使ってこのクラスをスタイリング可能です。
使い方の解説
sticky_class() は、投稿が固定表示されているかどうかに応じてsticky クラスを動的に付与します。このクラスを使うと、デザインの面で固定投稿を目立たせることができます。
- テーマのテンプレートファイル(例: index.php,archive.php,home.phpなど)
- 投稿ループ内で <article>や<div>タグに適用するのが一般的です。
基本的な使用例
<article <?php sticky_class(); ?>>
    <h2><?php the_title(); ?></h2>
    <p><?php the_excerpt(); ?></p>
</article>このコードでは、<article> 要素に sticky クラスが自動的に追加されます。CSSで sticky クラスをスタイリングすることで、固定投稿を目立たせることが可能です。
CSSを使ったカスタマイズ
.sticky {
    background-color: #f0f8ff;
    border: 2px solid #000;
    padding: 10px;
    margin-bottom: 15px;
}sticky クラスを持つ要素に対して、背景色やボーダーを設定することで、固定投稿を目立たせるスタイルを適用しています。
一緒に使うことが多い関連タグ
is_sticky()
is_sticky() は、現在の投稿が固定投稿かどうかを判定するテンプレートタグです。
<?php if (is_sticky()) : ?>
    <span class="badge">注目記事</span>
<?php endif; ?>このコードは、投稿が固定されている場合に「注目記事」というバッジを表示します。is_sticky() と組み合わせることで、さらに高度なカスタマイズが可能です。
post_class()
post_class() は、投稿に対して複数のクラスを自動的に付与するテンプレートタグです。
<article <?php post_class(); ?>>
    <h2><?php the_title(); ?></h2>
</article>post_class() は、投稿の状態(固定投稿・カテゴリ・タグなど)に応じたクラスを自動的に付与します。sticky_class() と一緒に使用することで、投稿の状態に応じた多様なスタイリングが可能になります。
sticky_class() と post_class() を組み合わせた例
<article <?php post_class(); ?> <?php sticky_class(); ?>>
    <h2><?php the_title(); ?></h2>
</article>post_class() と sticky_class() を組み合わせることで、投稿の状態に応じたクラスが付与されます。これにより、さらに柔軟なデザインの調整が可能になります。
追加情報を取得したい場合
投稿が固定されているかどうかを確認したい場合
is_sticky() を使用して、投稿が固定されているかどうかを条件分岐で判定することが可能です。
<?php if (is_sticky()) : ?>
    <h2 class="sticky-title"><?php the_title(); ?></h2>
<?php else : ?>
    <h2><?php the_title(); ?></h2>
<?php endif; ?>このコードでは、固定投稿の場合に特別なスタイルのタイトルを表示しています。
想定されるトラブル
sticky クラスが表示されない
投稿が「先頭に固定表示」に設定されていない可能性があります。
解決策
WordPress の管理画面から、投稿を編集し「この投稿を先頭に固定表示」にチェックを入れてください。
テーマによっては sticky_class() が機能しない
テーマのテンプレートファイルに sticky_class() が実装されていない可能性があります。
解決策
テーマのテンプレートファイル(例: index.php や archive.php)に sticky_class() を追加してください。
Q&A
まとめ
sticky_class() は、固定投稿に対して特定のクラスを付与し、CSSでスタイリングを施すためのテンプレートタグです。is_sticky() や post_class() などの関連タグと組み合わせることで、より高度なカスタマイズが可能になります。
固定投稿をうまく活用することで、重要な情報を目立たせ、ユーザーの注意を引くことができます。テーマに適切に実装することで、使い勝手の良いサイトデザインを提供できるでしょう。

コメント