投稿者「あたい」のアーカイブ

block要素がまとめてあるサイト

block要素って実はあんまりよく分かってなかったりする。
firebugで適当に変更していい感じで表示されたものを使ってたりもする…(これはよくない
というわけで仕事の合間に勉強ということで以下のサイトを見つけました。

わかりやすい!

https://seopack.jp/internal-seo/smartphone/handy-css-display.php

WordPressサイトを静的化するよ

お客さんが用意したサーバがまさかphpが動かないとは思わなかった。
今時そんなのアリか。あったんですけどね。

というわけで、静的なスタティックなhtmlにするためのプラグイン。

WP Static HTML Output
https://wordpress.org/plugins/static-html-output-plugin/

なんて便利なプラグインなんでしょうね。

こんな感じでいいと思います。

ちなみに、子テーマ化されてるとうまく書き出してくれないので、
ウルトラスーパーめんどくさいですが親テーマに戻してあげてください。

書き出したあとはちょっといじったりしましたが、(固定ページの中の画像とかは上手く出ないぽい?多分functions.phpでショートコードでURL書いてたからだと思いますが)
その程度です。とても素敵なプラグインでした₍₍ ◝(‘ω’◝) ⁾⁾ ₍₍ (◟’ω’)◟ ⁾⁾

オンマウスでリンク画像のオンオフを切り替える!

そのまんまです。
jQuery本体は読んでおいてください。

<script type="text/javascript">
jQuery(document).ready(function() {
$('img[src*="-off."]')
.on('mouseover', function(){this.src=this.src.replace('-off.','-on.');})
.on('mouseout', function(){this.src=this.src.replace('-on.','-off.');});
});
</script>

あとは、マウスが乗ってない状態の時の画像の名前を「abcdef-off.jpg」乗ってる時の画像の名前を「abcdef-on.jpg」にすればオッケーです。
別にjpgである必要はないです。どの画像でもいけます。あとonとoffの画像の「abcdef」のところは合わせるようにしてください。
そこが違うと判別しないので。٩(๑•̀ω•́๑)۶

ページ内スルスルスクロール!

#がついたページ内リンクでスルスルスクロールしてないサイトはナウくないんじゃ?
ってことで、スルスルスクロール機能簡単実装です。

1.headにもうjQuery本体は読んでる前提です。

2.これをheadに記述!

<script type="text/javascript">
$(function(){
// #で始まるアンカーをクリックした場合に処理
$('a[href^=#]').click(function() {
// スクロールの速度
var speed = 400; // ミリ秒
// アンカーの値取得
var href= $(this).attr("href");
// 移動先を取得
var target = $(href == "#" || href == "" ? 'html' : href);
// 移動先を数値で取得
var position = target.offset().top;
// スムーススクロール
$('body,html').animate({scrollTop:position}, speed, 'swing');
return false;
});
});
</script>

以上!!!

プラグイン不要で投稿や固定ページでWordPress独自タグを使う!

別に固定ページ内に相対パスとか絶対パスでURL記述してもいいんですけど、
なんか気になるからWordPress独自タグ使おうって話です。

でも独自タグって固定ページじゃ使えないから、使えるようにfunction.phpに書いちゃおって話です。

function sc_bloginfo($atts, $content = null) {
extract(shortcode_atts(array(
'arg' => ''
), $atts));

return get_bloginfo($arg);
}

add_shortcode('bloginfo', 'sc_bloginfo');

あとはこういう感じで置き換え置き換え~ヽ(•̀ω•́ )ゝ✧

サイトのURL!

[bloginfo arg='url']

WordPressがインストールされてるURL!

[bloginfo arg='wpurl']

テンプレートのURL!

[bloginfo arg='template_url']

子テーマ化とかされてるときのテンプレートのURL!

[bloginfo arg='stylesheet_directory']

例としてこんな感じで使うよ。

<img src="[bloginfo arg='stylesheet_directory']/img/hogehoge.png" alt="" />

私は相対パスとか階層の把握がへたくそなので、これはとても重宝しています。
あとその辺気にしなくていいしカスタマイズ性も良いと思います(∩`ω´)⊃))

検索用文字列:ショートコード

h1画像をスラッグ名で判断して自動で出す

スラッグ名と同じ名前のh1画像を作れば
そのスラッグ名を取得して出力すればいいからいちいちページにファイル名を記述したりしなくていいよねって話。

でも階層が深いサイトにはオススメしないかな…
ページごとにh1画像作らなきゃいけなくなっちゃうので。
同じ画像がサーバーにいっぱいあるとか困るってことで、1ページに1ヘッダー画像なサイトにオススメ(・ω・)ノ

<?php
$page = get_post( get_the_ID() );
// 現在表示しているページの投稿IDから投稿情報を取得
$slug = $page->post_name;
// 投稿のスラッグを取得
?>
<h1><img src="<?php echo get_stylesheet_directory_uri() ?>/img/content/h1/<?php echo $slug; ?>.png" alt="<?php the_title(); ?>"></h1>

一枚の大きな背景画像をブラウザいっぱいに貼る!そして繰り返さない!

最近流行してる大きな画像をbodyに設定するやつ!
よくそういうデザイン作ってますが、単純に「background-size: cover;」 だと横は良いけど縦が繰り返す!
ってことで下のコードで固定されて安心安心

body {
background-color: #000;/* 見えちゃった時の保険 */
background-image: url("hogehoge.jpg");
background-size: cover;
background-attachment: fixed;
background-position: center center;
}

コンテンツのサイズに依存せず、下までサイドバーを伸ばすJSコード

上下が横100%のヘッダーフッターに挟まれた、縦長のメニューバーがあったんですよ。
本当はその縦長メニューバーの背景を常にフッターにくっつく形で伸ばしたくて、
しかも右側にメインコンテンツ(内容量不明)が入るってことで脆弱コーダーはてんやわんやでした。

とにかくそれが何故かコンテンツと同じ長さしか伸びなくて、グスグスしてたら
上司が「これ書いたよ」ってJSくれました!!!!
神か~~。.:*・゚ *ଘ(੭*ˊᵕˋ)੭* ੈ✩‧₊˚

でも何やってるか分からない(終了

<script type="text/javascript">
(function($){
function resizeSideMenu()
{
var windowHeight = $(window).outerHeight();
var documentHeight = $(document).outerHeight();
var baseHeight = (windowHeight < documentHeight)? documentHeight: windowHeight;
var h = baseHeight - $("#footer").outerHeight() - $("#branding").outerHeight();
$("#main").height( h );

$("#footer").css({"top":"0px"});
}

$(document).ready(function(){
resizeSideMenu();
});

$(window).resize(function(){
resizeSideMenu();
});

})(jQuery);
</script>

同じhtmlの構成にしないと汎用性ないかもね。

WordPressの管理バーが勝手にサイトトップにmarginを付与するのをやめる

WordPressにログインした状態でサイトを見ると上部に管理バー出ますよね。
その管理バーの高さ分、サイトのトップにmargin-top: ?pxって感じで強制的に付与されるのが嫌だったので
コールバックをfalseで返しました。(何故嫌かは後述)

これをfunctions.phpに書くだけです。

add_theme_support( 'admin-bar', array( 'callback' => '__return_false' ) );

WPサイトを構築するにあたって、ちょっとサイトの高さ制御をJSでやることになって、
それと上記の仕組みが競合しているのか表示がバグってしまったのです。

解決!

レスポンシブになってもGoogleマップのピンが中央に来るやり方

やっておくこと

  1. Google APIキーの取得(Google Maps Embed API)
  2. Google API Conslie で「Google Maps JavaScript API」の有効化※やっとかないと動かない
  3. head部分でAPIキーを読み込んでおく。
    <script src="//maps.google.com/maps/api/js?key=XXXXXXXXXXXXXXXXX"></script>

やることの流れ

  1. スタイルシートに追加
    div#googlemaps {
    width:100%;
    height:300px;
    position:relative;
    }

    横幅100%じゃ困るんじゃいって時!

    div#googlemaps {
    max-width:650px;/* 好きな数字に */
    height:300px;
    position:relative;
    }
  2. .jsファイルを用意gmap.jsとかにしてるよ。あとこれをheadで読み込んでね。
    function initialize() {
    var latlng = new google.maps.LatLng(35.681298, 139.7662469);
    var myOptions = {
    zoom: 18,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.LOADMAP,
    scrollwheel: false,
    disableDefaultUI: false,
    };
    var map = new google.maps.Map(document.getElementById('googlemaps'), myOptions);
    var lopanMarker = new google.maps.Marker({
    position: latlng,
    map: map,
    });
    google.maps.event.addDomListener(window, "resize", function() {
    var center = map.getCenter();
    google.maps.event.trigger(map, "resize");
    map.setCenter(center);
    });
    var styledMapOptions = { name: '東京駅' }
    }
    google.maps.event.addDomListener(window, 'load', initialize);

    参考:【Responsive Google Maps】ウィンドウをリサイズしてもピンが中央からズレないようにする方法

    マップのピン(マーカー)をオリジナルのにしたいぞい!って時はこれ。

    function initialize() {
    var latlng = new google.maps.LatLng(35.681298, 139.7662469);
    var myOptions = {
    zoom: 16,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.LOADMAP,
    scrollwheel: true,
    disableDefaultUI: false,
    };
    var map = new google.maps.Map(document.getElementById('googlemaps'), myOptions);
    var image = {
    url : '画像のURL',
    scaledSize : new google.maps.Size(60, 60)//任意のサイズで!
    }
    
    var lopanmarker = new google.maps.Marker({
    position: latlng,
    map : map,
    icon : image,
    title : "東京駅"
    });
    
    google.maps.event.addDomListener(window, "resize", function() {
    var center = map.getCenter();
    google.maps.event.trigger(map, "resize");
    map.setCenter(center);
    });
    var styledMapOptions = { name: '東京駅' }
    }
    google.maps.event.addDomListener(window, 'load', initialize);


    実際にマーカーの画像を作るときは「new google.maps.Size(60, 60)」の倍:120px*120pxで作る!
    その方が高解像度なスマホでも鮮明で綺麗!

  3. マップを置きたいところにdivタグを挿入
    <div id="googlemaps"></div>

    多分これでスマホで見てもブラウザのサイズをギュイギュイ変えてもピンがど真ん中に来るGoogleマップが作れているはずです。


なんか今はこんなことしなくてもスマホで中央寄せされるみたいですね。
良い世の中になったね。(2018/1/24)