プラグインを使わず、WordPressでタグクラウドの表示の順番を制御する。ランダム、使用頻度順など

WordPressで、タグクラウドがいつも同じものしか表示されないのでランダムで表示してみた

WordPressのタグは限りなく投稿が可能。

でも、デフォルトの状態だと登録名順でしか表示されないので、どれだけたくさん入力しても、最初に登録した30個しか表示されない。
これをランダムで表示させるようにしたい。

functions.phpへの記述で、使用頻度で抽出させることはできる
//タグクラウドの順番を使用頻度で
function my_tag_cloud($args) {
 $myargs = array(
 'orderby' => 'count', //'name'タグ名(初期値), 'count'使用回数
 'order' => 'RAND', //'ASC'昇順(初期値), 'DESC'降順, 'RAND'ランダム
 'number' => 50 // 表示数 '0'と書くと全てのタグを出力
 );
 $args = wp_parse_args($args, $myargs);
 return $args;
}
add_filter( 'widget_tag_cloud_args', 'my_tag_cloud' );

これで、使用頻度の高い順に50個抽出して、それをランダムに並べなおして表示。

とすることができる。

ただし、これだと、使用頻度が低いモノまで含めて50個をランダムに抽出して並べることはできない。
 

使用頻度に関わらず、全てランダムに抽出する方法は?

number0 にして無制限に全部抽出してからランダムに並び替える。

wp-includes/category-template.php

wp_tag_cloud() のソースが書いてあるので、その辺をいじくって、出力する個数を50個にする。

で抽出。

とする必要がある。

この記事も読まれています

SANGOで、投稿のカテゴリーを複数登録し、ちゃんと複数カテゴリー表示させる方法 WordPress BuddyPressカスタマイズメモ

WordPressのサンゴテンプレートで記事投稿のカテゴリーを複数選択しても、1個しか表示されない件

サンゴのテンプレートでカテゴリーを複数個選択しても…

左上のオレンジの楕円の部分がカテゴリ名だが、
↓こんな感じで、1個目のカテゴリーしか投稿記事の画面では表示されない

これを、↓こんな風に、ちゃんと複数個表示させる。


 

functions.phpへの記述

色々な記述方法が考えらえるが、元々のSANGOの記述をできるだけ踏襲する形で書く。

//カテゴリーを記事一覧に複数表示
function output_catogry_link() {
 $cat = get_the_category();
 if (!$cat) {
  return false;
 }
 if ($cat) {
 $i = 0;
 foreach( $cat as $category) {
 $catId = $category->cat_ID;
 $catName = esc_attr($category->cat_name);
 $catLink = esc_url(get_category_link($catId));
 if ($catLink && $catName) {
  echo '<a class="dfont cat-name catid' . $catId . ' cat-multi' . $i . '" href="' . $catLink . '">' . $catName . '</a>' ;
  }
  $i = $i + 1;
  if ( $i >= 8 ) {
   break;
  }
  }//foreach
 }//if($cat)
 }

カテゴリーがある分だけ取得して、ソースとして吐き出されるので、ソースはこんな感じ。

<a class="dfont cat-name catidXX1 cat-mult0" href="カテゴリー1へのリンクURL">1のカテゴリー名</a>
<a class="dfont cat-name catidXX5 cat-mult1" href="カテゴリー5へのリンクURL">5のカテゴリー名</a>
<a class="dfont cat-name catidXX6 cat-mult2" href="カテゴリー6へのリンクURL">6のカテゴリー名</a>
...

classにclass に “cat-multi$i” ($iは変数でカテゴリのー数0から数字が順番に入る)

cat-multi数字 にCSSで配置を指定してやればいい。

なお、スペースの関係上、今回は上限を8個としている。
 

CSS (管理画面→外観→CSS編集→追加CSS)への記述

.cat-multi0{
 top: 3px !important;
}
.cat-multi1{
 top: 27px !important;
}
.cat-multi2{
 top: 51px !important;
}
.cat-multi3{
 top: 75px !important;
}
.cat-multi4{
 top: 99px !important;
}
.cat-multi5{
 top: 123px !important;
}
.cat-multi6{
 top: 147px !important;
}
.cat-multi7{
 top: 171px !important;
}

で、こんな風になる。

今回は上から下に並べているが、色を変えたり、横にずらしたりと色々できるはず。

WordPressの管理画面、ダッシュボードでオリジナルパーツ(独自メタボックス)を追加する方法 BuddyPressカスタマイズメモ

管理画面のダッシュボードで、独自のパーツ(メタボックス)を作って追加表示させる

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

管理者以外には、Wordpressのニュース、WordPress イベント、ようこそ画面など(ダッシュボードのメタボックスと呼ぶ)不要なものは全て非表示にしたうえで、独自のメタボックスを追加する方法を紹介。

ちなみに非表示にする方法はこちらを参照:
ダッシュボード画面(管理画面)の「アクティビティ」「クイックドラフト」などを非表示 WordPress BuddyPressカスタマイズメモ
 

独自メタボックス追加したい場合

普通の管理画面は色々と便利なウィンドウがあるが、記事を投稿してもらう人には不要なものばかり。

なので、不要なものを非表示にした上で

オリジナルの「クイックアクセス」というメタボックスを追加してみよう。


 

追加方法と記述のしかた

記述は簡単で、functions.php に下記のように書くだけ。

function my_meta_box(){
 add_meta_box( 'my_meta_box', 'クイックアクセス', 'my_meta_box_in', 'dashboard', 'normal', 'core' );
}
function my_meta_box_in(){
 echo '<a href="https://xxxxxxxx.com/">ホームページを確認</a><br />';
 echo '<a href="https://xxxxxxxx.com/wp-admin/post-new.php">新しく記事を書く</a><br />';
 echo '<a href="https://xxxxxxxx.com/wp-admin/profile.php">個人設定やプロフィールを編集</a><br />';
}
add_action( 'admin_menu', 'my_meta_box' );

‘クイックアクセス’の部分はタイトルなので、好きなタイトルでOK。

今回はリンクを貼り付けただけだが、phpで様々な機能を持たせることができる。

【解決済】Windows 上では実行できないか、エラーを含んでいます。と言われPCの立ち上げに10分ぐらいかかる時の解決法 エラー0xc0000020

Windows 上では実行できないか、エラーを含んでいます。元のインストールメディアを使用して再インストールするか、システム管理者またはソフトウェア製造元に問い合わせてください。エラー状態 0xc0000020。

C:\Program Files (x86)\PointGrab\Hand Guesture Control\StringProviderLib.dll
とかでよくおこるエラー。

富士通のFMVパソコンなどに搭載されている、手のジェスチャーで端末を操作する機能だが、これがエラーになると、Windows起動に10分ぐらいかかる場合がある。

Windows8か8.1から10にアップデートする際に PointGrabのスタートアップ起動がおかしくなる。

こんな感じでエラーが出る。

単純にPointGrabをアンインストールしてもいいし、富士通のホームページで最新版のdllファイルにアップデートすることで解決できる。

この記事も読まれています

ビジュアルエディター見た目を実際の投稿の色や見た目と揃える方法 WordPress BuddyPressカスタマイズメモ SANGOテンプレート

WordPressのビジュアルエディターで、H2やH3のをつけると、実際のCSSと違うようになるので、それを揃える方法

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが投稿するようになると、投稿画面のビジュアルエディターの見た目と、サイトフロントの見た目を揃えておいた方がいい。

別のCSSを用意してそれをビジュアルエディター用のCSSとして読み込ませる必要がある。
 

投稿画面のプレビュー用の別のCSSを用意する

SANGOのテーマの場合は
library/css/editor-style.css
に投稿画面用のCSSが入っている。

それを子テーマに別のCSSを入れて読み込ませてみる。

//スタイルとビジュアルエディターの見た目を揃える
function correct_visual() {
add_editor_style(get_stylesheet_directory_uri() . '/library/css/editor-style.css');
}
add_action('admin_init', 'correct_visual', 20);
get_stylesheet_directory_uri()

とパスを書いておくことによって、子テーマのURLが取得されるのでこれでOK。

例えば、
「オレンジ見出し」を実際のページで青くした場合、オレンジのプレビューになるのに、実際のページでは青。

editor-style.css の中に

/*オレンジ見出し*/
body#tinymce.wp-editor .hh8 {
  padding: 0.5em;
  color: #494949;
  background: #fffaf4;
  border-left: solid 5px #ffaf58;
}

この color や、background の色を変えればいい。

プラグインを使わずビジュアルエディターの文字修飾(TinyMCE)から不要ボタンを削除する方法 WordPress BuddyPressカスタマイズメモ SANGOテンプレート

ビジュアルエディターで、不要な文字修飾ボタンを削除する

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

WordPressには mce_buttons というフィルターフックが用意されている。

add_filter( 'mce_buttons', 'remove_mce_buttons' );

これが、1行目にあるボタンを削除する時の記述。

add_filter( 'mce_buttons_3', 'add_mce_buttons_3' );

こっちは、3行目にボタンを追加する時の記述。

removeadd削除追加
後ろに、 _2 _3 とかをつけて、2行目、3行目を操作する。
 

functions.phpへの記述

add_filter( 'mce_buttons', 'remove_mce_buttons' );
function remove_mce_buttons( $buttons ) {
  $remove = array(
    'formatselect', // フォーマット
    'bold',         // 太字
    'italic',       // イタリック
    'bullist',      // 番号なしリスト
    'numlist',      // 番号付きリスト
    'blockquote',   // 引用
    'alignleft',    // 左寄せ
    'aligncenter',  // 中央揃え
    'alignright',   // 右寄せ
    'link',         // リンクの挿入/編集
    'unlink',       // リンクの削除
    'wp_more',      // 「続きを読む」タグを挿入
    'wp_adv',       // ツールバー切り替え
    'dfw'           // 集中執筆モード
  );
  return array_diff( $buttons, $remove );
}

add_filter( 'mce_buttons_2', 'remove_mce_buttons_2' );
function remove_mce_buttons_2( $buttons ) {
  $remove = array(
    'strikethrough', // 打ち消し
    'hr',            // 横ライン
    'forecolor',     // テキスト色
    'pastetext',     // テキストとしてペースト
    'removeformat',  // 書式設定をクリア
    'charmap',       // 特殊文字
    'outdent',       // インデントを減らす
    'indent',        // インデントを増やす
    'undo',          // 取り消し
    'redo',          // やり直し
    'wp_help'        // キーボードショートカット
  );
  return array_diff( $buttons, $remove );
}

これで全て削除になる。残したい部分だけ、消しておけばOK。

WordPressでデータベース接続確立エラーになり、Not enough memory for blob データベースの修復(Repair)もできない時の対処法

データベースエラーになった時の状況確認

データベース接続確率エラーとWordpressで表示される時の状況確認。

・インストール後やサーバー移転後ずっとエラーなのか、ある時急にエラーになったのか
→ 最初からの場合は、データベース名、ホスト名、ユーザー名、パスワード、プリフィックスなど何かしらが間違えている可能性が高い。
まずはwp-config.phpの中のデータベースの設定などを確認。

ある時を境に、急にエラーになった場合は下記確認。

・サーバー側のエラーなのか、データベースのテーブルが壊れているのか
→ サーバーがダウンしている、メンテナンス中などの場合もこのエラーが表示される場合がある。緊急でないなら数時間~1日待ってみる。
国内サーバーなら、ホスティング会社のWebサイトなどに障害状況が掲載される場合が多いのでチェック。
海外サーバーなら、カスタマーサポートにメールかチャットで連絡してみる。

データベースの異常を確認するには、phpMyAdminにログインして、テーブルが「in use」になっているかどうかを確認すれば、データベースが壊れているかはすぐに分かる。

 

phpMyAdminを使いたくない(使い方が分からない)人は?

蛇足だが、phpMyAdminを使いたくない人は、

wp-config.phpのどこかに

define( 'WP_ALLOW_REPAIR', true );

と記述してから

ブログURL/wp-admin/ にアクセスしてみてWordPressからDBの修復を試みる事ができる。

これで修復できればいいが、できない場合は下記へ。
 

phpMyAdminからのデータベース修復

サーバーの管理画面などからphpMyAdminへログイン。

該当のデータベースを開くと

テーブルで「in use」となっているものがあり、「in use」は、破損を意味している。
今回は、wp_options が死んでいる。
あと他にも、wp_commentmeta もよく死ぬ。

壊れているテーブルの左のチェックボックスを選択してから上のメニューで「Repair table」を選ぶ。

日本語版だったら「テーブルの修復」かな?

上に緑で「Your SQL query has been executed successfully」って出たので、やった!成功だ!と思いきやエラーでした。

「Not enough memory for blob at 64384 (need 16862691..」

need xxxxx の部分の数字が途方もなく大きいので、これはもうまともな手法では直せないなと理解。

このエラーが出た時は 修復(repair)では直せない。

ちなみに、シェルアクセスでコマンドを打っても同じ、当然WordPressのdefine( ‘WP_ALLOW_REPAIR’, true );で、管理画面からリペアを試みても無理だ。
 

データベースのバックアップの復元、それが無いならサーバー管理会社にお願いしてリストア(ロールバック)してもらう。

自分で定期的なバックアップをとっていればそれをリストアしてもいい。

データベースのバックアップなんかしてねーって場合は、サーバーの運営会社(ホスティング会社)に連絡して最新のデータベースのバックアップへ復元してもらうしかない。

【解決済み】Googleファミリーリンク13歳以上になった後の設定方法、「管理ツールを設定」画面でスマホに赤く「!」が出て動かない

13歳の誕生日後、ファミリーリンク親アプリで、子供の情報が見れなくなる

中学生になり、子供の年齢が13歳以上になるとGoogleのファミリーリンクアプリが使えなくなる。

状況は下記の通り。

・13歳の誕生日の後もしばらく普通に使えていた
・GPSの監視などができなくなった
・子どもが自分で解除したわけではない(解除したら解除しましたよとメールが来る)
・画面ロック等の機能も使えない
・夜間の自動ロックなどもかからない

昨日まで見れてたのに、親のファミリーリンクアプリを見ても、スマホが赤で「!」、「管理ツールを設定」「詳細」以外何も見えない。

「管理ツールを設定」は何も反応しない

「詳細」を押しても意味はない。何ができるのかという文章が読めるけど、読めるだけで実際には何もできない。

こんな時の解決方法。
 

子どもスマホにファミリーリンクアプリをインストール

使えない原因は、簡単に説明するとこんな感じ。

13歳未満の場合は→
親Googleアカウントに紐づけされた、子Googleアカウントをファミリーリンク経由で作っていた。

13歳以上になると→
子Googleアカウントが親Googleアカウントから独立するので、子Googleアカウントに対しての親ファミリーリンクのリンクが死ぬ

というわけで、解決方法は、

子スマホのファミリーリンクアプリから子アカウントを一旦削除。

子スマホに新しく
18歳未満のお子様向けGoogleファミリーリンク
というアプリをインストールする(子のPlayストアから)。

Googleのサポート情報はこんな感じ。

子ファミリーリンクアプリ→左上のメニューからアカウント削除→削除→パスワード入力で削除

子スマホでFalmilyLinkアプリをアンインストール

ちなみに子スマホでアプリをアンインストールしてもアプリのアイコンは見えたままになる(30日後に消える)

子スマホで新しく「18歳未満のお子様向けGoogleファミリーリンク」をインストール完了して開いて

その後、再度、親ファミリーリンクとリンクさせる。
 
なお、一部機能が正常に動かない場合(ロックはできるが、GPSだけダメとか)は、親スマホのファミリーリンクアプリ、ファミリーリンクマネージャーもを一旦アンインストールして、もう一度インストールしなおしてから設定するとうまくいく場合もある。
 

それでも解決しない場合、現在のファミリーリンクの状況確認方法は下記。
 

PC版(Web版)でログインして状況確認

Webブラウザで「ファミリーリンク」と検索して、Android で使っているGmailのアカウントでログイン。

こんな感じでファミリーリンクでリンクされているメンバーが見える。

子が見えてない場合は、そもそもリンクされてないので、初期設定から再開。

子をクリックすると、「このアカウントはファミリーリンクで管理されています」と見える。

管理されていますと出るのに、デバイスの設定を見ると「赤!」
→ つまりリンクはできてるのに端末情報が得られない。

次に、メールを確認。
メールの通知はちゃんと来てるが、「子がファミリーリンクの解除を行いました」といった趣旨のメールは来ていない。
つまり、子の造反により、リンクが解除されたわけではない。

試しにアプリをインストールすると、
アプリインストールの通知は届く。

通知は届くのに、ロックやGPSでの位置情報が見えない状態。

この時は、18歳未満用のファミリーリンクのアプリを子スマホにインストールするといい。
 

余談だが…

ファミリーリンクアプリの親アプリの評価は上々で、☆4つぐらいある。

しかし、子アプリの評価がひどく☆1個しかない。

レビューの中身を見ると、子供側の評価が
「くそアプリ、うざすぎる」

「ホントうざい、Google何考えてるの?俺高校生だぞ?」

「ゴミアプリはやくサービス終了してくれ。不便でしかない。事あるごとに親に制限かけられてLINEできなくなって仲間外れにされてるんだぞ、「親に宿題やれって怒られてロックされたんだわ」とか恥ずかしくて言えねーよ。この世から消え去れクソアプリが。」

と散々だ。

子どもの健やかな成長のためにも、13歳以上の導入は子供と親でよく話し合った上で使ってください。
とGoogle自身も語っている。

【解決済み】弥生会計で「仕訳を登録してもよろしいですか?」や「仕訳を変更してもよろしいですか?」と出てくる確認を無効(非表示)にする方法

アップデート後に弥生会計で仕訳登録時に出てくるようになった確認画面の消し方

現金出納帳や、預金出納帳、総勘定元帳などを入力していると、「仕訳を登録してもよろしいですか?」といちいち聞かれるようになる。

また以前入れた行の値段を変えたりしても「仕訳を変更してもよろしいですか?」といちいち確認画面がでてきてうざい。
 

確認を無効にする方法

上のメニューから「オプション」→「環境設定」→「キー操作・入力」

下の方にある「帳簿で取引入力時に登録確認を行う」のチェックを外して「OK」

これで出なくなる。

アドミンバーの右上の吹き出しっぽいJetpack wordpress.comからの通知(stats)を消す方法 WordPress BuddyPressカスタマイズメモ your stats are booming!とか getting lots of traffic

WordPress管理画面のアドミンバーの右上にでてくる all とか unreadとかの通知を非表示に

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

jetpackのakismet(つまりwordpress.com の API キー)で、複数サイトで同じアカウントを使いまわしていると、この通知で

Your stats are booming! [他のサイトの名前] is getting lots of traffic.
とか
Someone commented on [他のサイトの名前]とか表示されて嫌な感じになる。

functions.php への記述で非表示に

//アドミンバーの右上の吹き出しっぽいwordpress.comからの通知を消す
if (!current_user_can('administrator')) {
function admin_bar_remove_item( $wp_admin_bar ) {
 $wp_admin_bar->remove_menu('notes');
}
add_action( 'admin_bar_menu', 'admin_bar_remove_item', 1000 );
}

“管理者”も非表示にする場合は、一番上と一番下の

if (!current_user_can('administrator')) {

}

を削除すればいい。

明日試したくなるカスタマイズ、ネットな日々に役立つ小技と、たまに旅行の妄想と。