カテゴリー
WordPress

何度書いても忘れてしまうカスタム投稿のカテゴリー(Taxonomy)を表示する

WordPressに久しぶりにさわったら全てを忘れていた。当然、カスタム投稿のカテゴリーを表示する方法など覚えておらず、なんとなーく「タクソノミーの何かだよな・・・」と頭の片隅の記憶を頼りに、検索検索検索検索して表示させることができた。postのループの中で使用すれば、どのカスタム投稿でも使用できる。

<?php

$tax_slug = array_keys(get_the_taxonomies())[0];

$terms = get_the_terms($post->ID,$tax_slug);

foreach( $terms as $term ) {

echo $term->name . ",";

}

?>

WordPressコーディックスってなくなってしまったん(リンク切れ、エラー表示が多い)?英語のリファレンスしかなくて不便になってしまった。

カテゴリー
WordPress

ロゴのリンク先を変更

//ロゴのリンク先を変更
function custom_login_logo_url() {
              return get_bloginfo( 'url' );
}
add_filter( 'login_headerurl', 'custom_login_logo_url' );

と、昔のメールに書いてあった。今も動くのだろうか。

カテゴリー
CSS

cssのキャッシュ無効化

最近WordPressさわってない…。

大したことではないのだが、cssのキャッシュを無効化する方法を記述。ファイルに日付をつけるだけだけど…。ファイルの更新日の認識だったけど、そうかキャッシュが無効になるのか。なるほどなるほど。

style.css?20190717

phpで自動化もできるみたい。

<link rel="stylesheet" href="/css/style.css?<?= filemtime('css/style.css'); ?>">
カテゴリー
WordPress

ログインしていないと閲覧できないようにする

すぐ忘れちゃう。。たぶん、過去にも書いている。

ログインしていないと閲覧できないようにする。絶対パスで読み込んでいるもの等、header.phpを通らないものは閲覧できてしまうので注意。

if (!is_user_logged_in()) {
    auth_redirect();
}

カテゴリー
WordPress

管理画面から記事を編集しようとすると500エラー

管理画面から特定の記事を編集しようとすると500エラーを返すというのでみてみた。どうやらリピーターフィールドを大量に使用している記事で、メモリーオーバしているよう。で、下記をwp-config.phpに記述。

define('WP_MAX_MEMORY_LIMIT', '1024M');

現場にはページを軽くしようという概念はないのだ。仕方ない。

下記の記事を参考にしました。ありがとうございます。
http://streamline-jp.net/nextlife/2015/09/16/10233/

カテゴリー
WordPress

posttypeのラベル名を表示

カテゴリーテンプレートでposttypeのラベルを表示させたくなった。んで、いつも悩むのである。とりあえず下記のコードで表示することができた。いつものごとく、あまり理解しないで実装している。ちゃんとしないとなあ。

<?php echo esc_html( get_post_type_object(get_post_type())->label ); ?>

カテゴリー
WordPress

記事がないカテゴリが表示されるという現象

ときに原因不明の事象が起こり、いろいろいじっているうちに回復するときがある。今回もそうだ。時間が限られているので原因究明までは至らないが、状況だけ残しておくこととす。

あるカスタム投稿の記事が無いにも関わらず、表画面からは項目名(タクソノミーの名前)を表示する不具合がおきた。結論として、カスタム投稿内のごみ箱を空にしたら回復した。ごみ箱の中に該当のタクソノミーに属する記事があったからだと思われる。しかし、ごみ箱には他のタクソノミーに属する記事も存在していた。それは表示されていない。まるごと削除してしまったので、その後調査はできず…!1時間も消費してしまった。午前中が終わってしまうので、現場からは以上です。

カテゴリー
その他

IEの互換表示設定

年に2回くらい問い合わせがある。IEで見られねーとか、動かねーとか。イントラネット(社内ネット)の場合、たいがいは「互換表示設定」で昔のIEに切り替わってるのが原因だ。オプションで「イントラネットは互換表示で表示する」のチェックを外すか、下記のをhtml内に記述すると良いらしい。

<meta http-equiv="X-UA-Compatible" content="IE=edge"/>

良いらしいと書いたのは、丁度この問い合わせがきたので、これから試すのだ。忘れないように記録しておくこととす。南無南無。

カテゴリー
CSS

Edgeでcalc()が効かない

例えば、width: calc(calc(100% / 3)とすれば幅をちょうど3分割になるように計算してくれる。いかに便利かというのはググってみてほしい。んで、今制作しているサイトをEdgeでみて愕然とした。calcが効いていないのである。calcは使えないんだっけ?使えるはずじゃん!なんでなんで。

で、検索したところ、IE11とEdgeではflexの中ではcalc()は使えないんだと。横並びをflexで使っていたのだった。

下記は参考サイト、ありがとうございます。他にもいくつか問題点が報告されているようです。

IE9/10から使えるCSS:calc()

カテゴリー
JavaScript

jQuaryでページ読み込み時にinputのイベントを発生させる

タイトルが変な感じだが、inputのvalueの長さでイベントを発生させたいのだが、ページ読み込み時に発生させることができなかったので、どうしようという案件。

どうも画像を読み込んだ時にはonloadイベント発生するが、タグがレンダリングされる時には、onloadイベントは発生しないようだ。なので、ページ読み込み時に$letterpackElements.each(function(){$(this).keyup();でkeyupイベントを発生させることで、.onの以降の処理も連動して(?)発生させることができた。よかった。実はパイセンが書いてくれたので、私はあまりよくわかっていない。

<script>
$(function(){
var $letterpackElements = $("[id^=letterpack_]");

$letterpackElements.on('keyup',function(){
var letterpack_num = ($(this).val());
if(letterpack_num.length > 10 && letterpack_num.length < 14){
var url='https://xxx/search/?requestNo1='+letterpack_num+'&locale=ja';
$(this).next('a').attr('href',url);
$(this).next('a').html("リンク表示");
}else{
$(this).next('a').attr('href','');
$(this).next('a').html("");
}
});
$letterpackElements.each(function(){
$(this).keyup();
});
});
</script>