wordpressプラグインを使わずにタグクラウドの数と表示方法とCSSを編集する方法
wordpressのカスタマイズについてを書きます。
プラグインを使わずに、タグのカスタマイズをする方法です。
category-template.phpを編集する方法をとっていたのですが、wordpressが更新するたびに元に戻ってしまうので、function.phpに書く方法にしました。
両方やり方は書いているので、好きな方を使ってください。
ちなみに2つ目のfunction.phpに追記する方法は、wordpres4.4から記述が変わっちゃったのか、従来のコードでは認識しなくなったので、新しくコードを書き換えました。
以前このブログで紹介したコードを利用された方で、変になったじゃないか!という人は、追記のコードを書き加えてくださいね。
category-template.phpでタグのカスタマイズをする方法
まずは、タグの表示数がデフォルトで45個になっているのを無限にする方法と、左揃えにする方法、文字の大きさを揃える方法です。
FTPでwp-includesにアクセスし、その中にあるcategory-template.phpを編集します。
(この方法ではwordpressがバージョンアップする度にcategory-template.phpがリセットされるので、function.phpに書き足す方法を追記しました。個人的にはこっちがおすすめ!)
ファイルをデスクトップなどに一旦ダウンロードして、terapadなどで開いて編集をしてください。
メモ帳で編集するとUTF-8という書式が崩れちゃうのか、エラーになってしまうので要注意!
590行目あたりにあるこの部分・・
$defaults = array(
‘smallest’ => 10, ‘largest’ => 10, ‘unit’ => ‘pt’, ‘number’ => 0,
‘format’ => ‘flat’, ‘separator’ => "\n", ‘orderby’ => ‘name’, ‘order’ => ‘ASC’,
‘exclude’ => ”, ‘include’ => ”, ‘link’ => ‘view’, ‘taxonomy’ => ‘post_tag’, ‘post_type’ => ”, ‘echo’ => true
);
function wp_tag_cloudの部分を編集するのですが、これが私が使っている、フォントサイズを10で固定した無限数表示になる設定です。
他のを使いたい人は、以下を参考に自分で好きに組み立てて下さい。
smallest – 一番小さいタグを 8(pt) で表示(件数が少ないタグ)
largest – 一番大きいタグを 22(pt) で表示(件数が多いタグ)
unit – smallest と largest のフォントサイズの単位として ‘pt’ (point) を使用
number – 最大 45 タグを表示
format – flat(ホワイトスペース区切り)形式でタグを表示
separator – タグの間にホワイトスペースを表示
orderby – タグ名順に表示
order – 昇順でソート(前項でタグ名を指定しているので「タグ名の昇順」となる)
exclude – 除外タグなし
include – 全てのタグを含める
topic_count_text_callback – タグ数の表示形式を default_topic_count_text 関数で指定
link – リンクをクリックしてもタグを編集させない
taxonomy – 投稿タグを使ってクラウドを作る
echo – 結果を表示する
主にいじるのは、smallestとlargestのフォントサイズと、formatの左詰めのリスト表示にするかどうかと、numberの数のところかなと思います。
- smallest
最少使用数のタグの表示に使うフォントサイズ
初期値: 8 - largest
最多使用数のタグの表示に使うフォントサイズ
初期値: 22 - unit
smallestとlargestの値の単位、pt, px, em, % 等
初期値: ‘pt’ - number
クラウドに表示するタグ数(’0’で無限になる)
初期値: 45 - format
クラウド表示のフォーマット。
初期値: flat‘flat’ – タグをホワイトスペース(separator パラメータで定義)で区切る。
‘list’ – タグを class=’wp-tag-cloud’ 付きの ul(番号なし箇条書き)内に表示。
‘array’ – タグを配列に格納し、タグクラウドデータを PHP で扱えるように配列のまま返す。注:配列の取得(表示ではなく)は WordPress 2.5 以上で使えます。 - separator
タグの間に表示するテキストまたはスペース。
初期値: “\n”(空白) - orderby
タグの表示順とする項目。
初期値: name‘name’ – タグ名
‘count’ – 使用数 - order
ソート順。
初期値: ASC‘ASC’ – 昇順(初期値)
‘DESC’ – 降順
‘RAND’ – ランダム(WordPress 2.5 以上で指定可能) - exclude
除外するタグの term_id をコンマ区切りで指定。
‘exclude=5,27’ とすれば term_id が 5 と 27 のタグは表示されない。デフォルトでは除外なし。
初期値: null - include
表示対象とするタグの term_id をコンマ区切りで指定。
‘include=5,27’ とすれば term_id が 5 または 27 のタグのみを表示。デフォルトでは全てのタグが対象。
初期値: null - topic_count_text_callback
タグリンクの title 属性に設定される「タグの件数」の文字列を返す関数(投稿の数とタグを与えられて「ツールチップ」文字列を返す)の関数名。
初期値: default_topic_count_text - link
特定のタグを編集できるようリンクを設定。
初期値: view‘view’ – 閲覧(初期値)
‘edit’ – 編集 - taxonomy
クラウドの生成に使うタクソノミー、またはタクソノミーの配列。
注:このパラメータは WordPress 2.8 にて導入された。
初期値: post_tag‘post_tag’ – 投稿タグ
‘category’ – 投稿カテゴリー
‘link_category’ – リンクのカテゴリー
登録済みのカスタム分類(タクソノミー)
または、タクソノミーの配列 – 注:これはバージョン 3.1 以降で使えます。 - echo
結果を表示するか、変数に入れるか。デフォルトは true (タグクラウドを表示)
初期値: true
1 (true) – 表示
0 (false) – 値を返す(表示しない)
次は、CSSを整えていきます。
タグクラウドは、.tagcloud という関数が与えられているので、category-template.phpで上記の変数を変えただけの状態のカスタマイズならば、以下のCSSをdesign.cssの最後に追記すれば、カスタマイズできます。
カラーや大きさなどは好きに変えて下さい。
追加タグクラウド
————————————————————-*/
.tagcloud {
overflow: hidden;
padding: 10px 10px;
}
.tagcloud a {
float: left;
display: block;
background: #666699;
line-height: 100%;
color: #fff;
text-decoration: none;
font-weight: 400;
font-size: 93%;
padding: 4px 10px 3px;
margin: 0 5px 5px 0;
-webkit-transition: .3s ease;
-moz-transition: .3s ease;
-o-transition: .3s ease;
transition: .3s ease;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
}
.tagcloud a:hover {
background: #1d2d4b;
}
これでごちゃごちゃしていたタグクラウドが少し見やすくなるかも。
文字の大きさがバラバラだと、探しにくいですもんね。
function.phpでタグクラウドをカスタマイズする方法
冒頭で書いたcategory-template.phpで変更したタグクラウドの設定が、wordpressがバージョンアップするたびにリセットされる問題を回避する為の、function.phpへタグの調整を直接書き込む方法。
この方法はcategory-template.phpの編集は行わない方法になりますが、CSSは上で紹介しているものを併用できます。
function.phpへの追記のコードは下記をコピペでokですが、上記で説明したように自分好みに中身をカスタマイズしてくださいね
function my_tag_cloud_filter($args) {
$myargs = array(
‘smallest’ => 10, // 最小文字サイズは 10pt
‘largest’ => 10, // 最大文字サイズは 10pt
‘number’ => 30, // 一度に表示するのは30タグまで(0で無限)
‘echo’ => false, // wordpress4.4以前の人はこの行は不要
);
return $myargs;
}
add_filter(‘widget_tag_cloud_args’, ‘my_tag_cloud_filter’);
以上を、一番下の ?> の直前に追記してください。
wordpress4.4から以前の方法では表示が崩れるようになったので、コードを変更しました。
7行目にあたる 「’echo’ => false,」 を追記する事により、表示崩れがなおるので、以前この方法で表示を整えたのに、また壊れるようになったという方は追記をお試しください。
function.phpはとてもデリケートで一度崩れると元に戻らない場合があります。
そして崩れた時は真っ白になって、ブログが表示できなくなって焦りますw
編集する前に、function.phpをファイルごとバックアップを取ってから編集してください。
もしfunction.phpの編集を失敗しても、バックアップしたfunction.phpのファイルがあれば、ftpでアップロードして差し替えると、すぐに簡単に元に戻すことができます。
そして、コードを追記するだけでもファイルの編集はTerapadなどのソフトで編集しないと、ダブルクリックしてメモ帳なんかで開いても壊れますので要注意です!
wordpressの文字エンコードは、UTF-8Nで改行はLFってのがTeraPadで編集するwordpressに推奨の形式みたいなのでそこの確認もお忘れなく!
COMMENTS & TRACKBACKS
- Comments ( 2 )
- Trackbacks ( 0 )
初めまして。
こちらの記事のおかげで、タグクラウドのレイアウト崩れが解消しました。
感謝です!
青菜さん
初めまして。
参考にして頂けて嬉しいです。