ホンダ ジェイド250

Waste Days

バイクとPCと時々のぎ

WordPressのメディアを追加する機能は大変便利なのだが

 

一点だけ面倒な点がある

 

 

画像の場合はいちいち張った後に編集で

 

新しいタブに読み込むをチェック入れないと画像をクリックすると

 

そのタブに読み込んでしまうので記事を読み直すのに戻るのが面倒

 

そこでWordPressの記事部分に張られた画像なら自動で新しいタブに読み込む

 

javascriptを導入しようというのが目的

 

さてここで前回の子テーマ作成が生きてくる

 

 

導入方法はまずWordPressの子テーマフォルダに「js」フォルダを作ったら

 

こちらのサイトより「image-newwindow.zip」を入手し中身の

 

image-newwindow.jsをjsフォルダにコピーする

 

今回はスクリプトを読み込むための関数を定義するため

 

functions.phpを編集するのだがせっかく子テーマを作ったのだから

 

子テーマ用に新たにfunctions.phpファイルを作る

 

 

functions.phpに以下のコードを入力し子テーマフォルダにアップロードする

 

<?php
/*-------以下追記-------*/

//管理画面以外で使用する

if (!is_admin()) {
 
    //JavaScriptの読み込みコードを関数にまとめる
    function my_scripts() {
 
    //テンプレートディレクトリのパス(親テーマのフォルダ)
    $dir = get_template_directory_uri();
    
    //JavaScriptを読み込む
	wp_enqueue_script('image-newwindow',$dir .'/../techismchild/js/image-newwindow.js', array(), NULL, true);
	}
    add_action( 'wp_enqueue_scripts', 'my_scripts' );
}
?>

wp_enqueue_script() を利用してjavascriptを読み込むためのコード

 

参考:WordPress Codexサイト

 

書式は wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

 

$handleはスクリプト名で普通は.jsファイルのファイル名と同じ

 

$srcにjsファイルのあるURLを入力するのだが$dirでURLを指定する関数を定義

 

注意点としてget_template_directory_uri()は親テーマのフォルダURLを表すので

 

/..で親フォルダの1つ上のフォルダを示している(ここではthemsフォルダの事)

 

・テーマフォルダ構成

 

/themes ― /techism

L /techismchild/js/image-newwindow.js

 

function my_scripts()でwp_enqueue_script()自体を関数として定義すると

 

複数のスクリプト読み込みができるようになるので非常に便利

 

*子テーマのfunctions.phpは必ず追記したいコードのみを書くこと

 

親テーマの一部をコピーなどするとエラーでサイトが真っ白になる

 

 

*このスクリプトでは画像のURLからWordPressの画像フォルダである

 

uploadsと言う単語を検索して機能しているんで

 

他のフォルダにアップされた画像は動かない

 

 

これでいちいち画像を張った後にクリックで編集しなくても

 

画像が新しいタブに読み込まれるようになる

 

 

*追記

 

過去のJUGEM時代の記事に張られた画像も開けるように

 

スクリプトをすこし改造してみた

 

image-newwindow.jsをテキストエディタなどで開いて以下のように変更する

 

function imgNewWindow(){

  var linkTag = document.body.getElementsByTagName('a');

  for(var i=0; i<linkTag.length; i++){
    var attr = linkTag[i].href;
    var point1 = attr.indexOf('uploads'); //変数名をpoint1からに変更
    var point2 = attr.indexOf('jugem'); //jugemを検索文字に追加
    if(point1 !== -1 || point2 !== -1){ //point1とpoint2の条件を倫理和にして否定する
      linkTag[i].target = '_blank';
    }
  }
}


function addEventSet(elm, listener, fn){
  try{
    elm.addEventListener(listener, fn, false);
  }catch(e){
    elm.attachEvent("on"+listener, fn);
  }
}
addEventSet(window, "load", function(){imgNewWindow();});

 

以上でWordPressのuploadsとjugemと言うフォルダに入れた画像なら

 

新しいタブで読み込まれるようになった



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください


2016年3月
 12345
6789101112
13141516171819
20212223242526
2728293031  

archives

  • 2026 (1)
  • 2025 (33)
  • 2024 (28)
  • 2023 (15)
  • 2022 (19)
  • 2021 (15)
  • 2020 (16)
  • 2019 (13)
  • 2018 (21)
  • 2017 (40)
  • 2016 (118)
  • 2015 (53)
  • 2014 (31)
  • 2013 (14)
  • 2012 (59)
  • 2011 (89)
  • 2010 (65)
  • 2009 (97)
  • 2008 (22)

Avisynth aviutl BDAV BitLocker BonDriverProxyEx CentOS Collapsing Categories cppcryptfs EDCB FAW2AAC Firefox GoogleDrive HDMIキャプチャ LAST NUMBER openSUSE pCloud Raspberry Pi 2 Techism TvRock TVTest Ubuntu Windows 7 Windows 8.1 Windows 10 Windows10 WordPress WordPressテーマ XFREE Zenfone 10 アカウント凍結 グラディウス2 ゲーム攻略 セキュリティ セキュリティソフト ドライバ関連 乃木坂46 乃木坂46時間TV 卒業 坂道シリーズ 小粋空間 日記 桜井玲香 橋本奈々未 深川麻衣 選抜発表