SQLの窓

2018年04月14日


WordPress の投稿画面のカスタマイズ3つ / フォント・記事リンク・一覧のリンク

PHP を解っていても、WordPress のカスタマイズとなると、インターネットに頼るしかありません。

投稿のテキストエリアのフォントを変更

まず最初に投稿のテキストエリアのフォントを変更したかったのですが、最初見つけた『editor-style.css』を使う方法はうまくいかなかったので、もっとダイレクトに function.php 内で行う方法を見つけました。

WordPress投稿画面 テキストエディタのフォントを変更したい

しかし、ここのコードは HTML の出力を echo で行っていたのでカスタマイズには不向きです。最初 PHP タグを閉じてやろうかと思いましたが、それだと失敗した場合影響が大きくて一般には不向きなのでヒアドキュメントで実装しました。
function change_editor_font(){

print <<<STYLE
<style>
textarea#content.wp-editor-area {
	font-family: "ヒラギノ角ゴPro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"MS Pゴシック",Verdana,Arial,Helvetica,sans-serif;
	font-size: 16px;
	color: #000000;
}
</style>

STYLE;
}
add_action('admin_head', 'change_editor_font');


投稿時の記事リンクをクリックした場合新しいしいタブを開く

これは、『投稿画面のパーマリンク編集部分とクイック編集を非表示にする方法』という記事内にあったコードを転用しました。

※ デベロッパーツールで見ると、id="sample-permalink" となってるリンクです。
add_filter( 'get_sample_permalink_html', 'hide_permalinkedit' );
function hide_permalinkedit( $permalink_html ) {
  $permalink_html = preg_replace( "/<a /" , "<a target=\"_blank\" " , $permalink_html );
  return $permalink_html;
}


投稿一覧の記事リンクをクリックした場合も新しいしいタブを開く

▼ このリンクです


さすがに、function.php 経由ではできそうにも無かったので直接変更しました。アップデートで元に戻ると思いますが、まあそのたびに変えればいいので。

みつけるのに、まずデベロッパーツールで見たら、 rel= があったのでローカルに 『wp-admin/includes』をダウンロードして JGREP というフリーソフトで検索しました。

※ JGREP 2.0.5 はWin7 でも動作する、テキスト内文字列検索のできる結構人気の高いフリーソフトです





これで、class-wp-posts-list-table.php の中の該当部分を変更しました。
		if ( is_post_type_viewable( $post_type_object ) ) {
			if ( in_array( $post->post_status, array( 'pending', 'draft', 'future' ) ) ) {
				if ( $can_edit_post ) {
					$preview_link = get_preview_post_link( $post );
					$actions['view'] = sprintf(
						'<a href="%s" rel="bookmark" aria-label="%s">%s</a>',
						esc_url( $preview_link ),
						/* translators: %s: post title */
						esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;' ), $title ) ),
						__( 'Preview' )
					);
				}
			} elseif ( 'trash' != $post->post_status ) {
				$actions['view'] = sprintf(
					'<a target="_blank" href="%s" rel="bookmark" aria-label="%s">%s</a>',
					get_permalink( $post->ID ),
					/* translators: %s: post title */
					esc_attr( sprintf( __( 'View &#8220;%s&#8221;' ), $title ) ),
					__( 'View' )
				);
			}
		}





タグ:WordPress
【PHPの最新記事】
posted by lightbox at 2018-04-14 13:25 | PHP | このブログの読者になる | 更新情報をチェックする

2018年04月10日


PowerShell : COM 経由(New-Object) + MySQL Connector/ODBC でループ処理をしながら更新

PowerShell をコマンドプロンプトからセキュリティの制限を回避して実行できるように以下のバッチファイルを Windows フォルダに置いています。

▼ ps.bat
@powershell -NoProfile -ExecutionPolicy Unrestricted "./%1.ps1"
これによって、カレントフォルダの .ps1 スクリプトファイルを名前を指定して実行できます。 ado_com_mysql.ps1 データベースから条件に合ったレコードを読みだして、CSV 形式で出力する為のテキストを作成して最後に出力します。 その処理中にレコード毎に更新を行っています。 CSV 形式のカンマは、常に項目の後ろに追加して、行が完成した後一文字を行の最後から削除して作成しています。( いわゆる Chop です ) ここでは、その為に $line.Substring(0,$line.Length-1) を実行しています。 Hey, Scripting Guy! Blog では、正規表現による置換を使った方法も紹介されています。 $error[0] | Format-List * -force は、$error の中のプロパティと内容を全て表示する方法です。 ▼ 参考 How to list all properties of a Powershell object? 実行はコマンドプロンプトから ps ado_com_mysql となります
$cn = New-Object -ComObject ADODB.Connection
$rs = New-Object -ComObject ADODB.Recordset

$driver = "{MySQL ODBC 5.3 Unicode Driver}"
$server = "localhost"
$db = "lightbox"
$user = "root"
$pass = ""

$connectionString = "Provider=MSDASQL;Driver={0};Server={1};DATABASE={2};UID={3};PWD={4};"
$connectionString = $connectionString -f $driver,$server,$db,$user,$pass

$connectionString


try {
	$cn.Open( $connectionString )
}
catch [Exception] {

	$error[0] | Format-List * -force
	exit

}

$rs.CursorType = 2
$rs.LockType = 3
$rs.Open( "select * from 社員マスタ where 社員コード <= '0004' ", $cn )

$text = ""
while( !$rs.EOF ) {

	$line = ""

	$line += "{0}{1}" -f $rs.Fields("社員コード").Value, ","
	$line += "{0}{1}" -f $rs.Fields("氏名").Value, ","
	$line += "{0}{1}" -f $rs.Fields("フリガナ").Value, ","
	$line += "{0}{1}" -f $rs.Fields("所属").Value, ","
	$line += "{0}{1}" -f $rs.Fields("性別").Value.ToString(), ","
	$line += "{0}{1}" -f $rs.Fields("給与").Value.ToString(), ","
	$line += "{0}{1}" -f $rs.Fields("手当").Value.ToString(), ","
	$line += "{0}{1}" -f $rs.Fields("管理者").Value, ","
	$line += "{0}{1}" -f $rs.Fields("作成日").Value.ToString("yyyy/MM/dd"), ","
	$line += "{0}{1}" -f $rs.Fields("更新日").Value.ToString("yyyy/MM/dd"), ","
	$line += "{0}{1}" -f $rs.Fields("生年月日").Value.ToString("yyyy/MM/dd"), ","

	$line = $line.Substring(0,$line.Length-1)

	$line += "`n"
	$text += $line

	$rs.Fields("管理者").Value = "0001"
	$rs.Update()

	$rs.MoveNext()
}

$text

if ( $cn.State -ge 1 ) {
	$cn.Close()
}



関連する記事

▼ Python + COM
Eclipse + Python(Pydev) : pywin32(COM使用の為) + MySQL Connector/ODBC でループ処理をしながら更新

▼ Ruby + COM
Eclipse + Ruby : win32ole(COM使用の為) + MySQL Connector/ODBC でループ処理をしながら更新



posted by lightbox at 2018-04-10 20:17 | PowerShell | このブログの読者になる | 更新情報をチェックする

Eclipse + Ruby : win32ole(COM使用の為) + MySQL Connector/ODBC でループ処理をしながら更新

前提条件

Eclipse は Pleiades Eclipse 4.7 Oxygen です。前提となる環境は以下を参照して下さい。

Pleiades Eclipse 4.7 Oxygen 2 Windows 64bit Ultimate Full Edition のインストールといろいろな準備
Pleiades Oxygen 2 の XAMPP 内の MySQL を利用可能にしてテストデータ(販売管理)を登録する

▼ プロジェクトの作成方法はこちらを参照して下さい
Pleiades Eclipse 4.7 Oxygen で Ruby を使って MySQL にアクセスする

Connector/ODBC 5.3.10

ADO から接続する場合、純粋に Windows からのアクセスになるので ODBC ドライバが必要になります。Ruby が 64ビットならば、ODBC ドライバも 64ビット用が必要になります。

ダウンロードページ

com_ado_mysql

以下は、ADO + COM で行われる標準的なレコードセットの読み込みと同時更新の処理です。
特徴的なのは、レコードセットの Fields コレクション( Field オブジェクト )を使用して値を直接セットして一行づつレコードを更新するところです。
require 'win32ole'

adOpenDynamic = 2
adLockOptimistic = 3

cn = WIN32OLE.new('ADODB.Connection')
rs = WIN32OLE.new('ADODB.Recordset')

driver = "{MySQL ODBC 5.3 Unicode Driver}"
server = "localhost"
db = "lightbox"
user = "root"
pass = ""

connectionString = "Provider=MSDASQL;Driver=%s;Server=%s;DATABASE=%s;UID=%s;PWD=%s;"
connectionString = format(connectionString, driver,server,db,user,pass)
puts connectionString

# **************************
# 接続
# **************************
begin
	cn.Open( connectionString )
rescue => ex
	print format("%d エラーが発生しました\n%s",ex.errno,ex.error);
	# 接続エラーの場合は終了
	exit!
end

rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Open( "select * from 社員マスタ where 社員コード <= '0004' ", cn )

while !rs.EOF do

	line = ""
	rs.Fields.each do |field|
		line << format(" %s |",field.Type)
	end
	line.chop!
	puts line

	line = ""
	rs.Fields.each do |field|
		if field.Type == 202 then
			line << format(" %s |",field.Value)
		end
		if field.Type == 3 then
			# nil 値あり
			line << format(" %s |",field.Value.to_s)
		end
		if field.Type == 135 then
			line << field.Value.strftime(" %Y/%m/%d |")
		end
	end
	line.chop!
	puts line

	print format("%s,",rs.Fields("社員コード").Value)
	print format("%s,",rs.Fields("氏名").Value)
	print format("%s,",rs.Fields("フリガナ").Value)
	print format("%s,",rs.Fields("所属").Value)
	print format("%d,",rs.Fields("性別").Value)
	print format("%d,",rs.Fields("給与").Value)
	if !rs.Fields("手当").Value.nil? then
		print format("%d,",rs.Fields("手当").Value)
	else
		print ","
	end
	print format("%s,",rs.Fields("管理者").Value)
	print rs.Fields("作成日").Value.strftime("%Y/%m/%d,")
	print rs.Fields("更新日").Value.strftime("%Y/%m/%d,")
	print rs.Fields("生年月日").Value.strftime("%Y/%m/%d\n")

	rs.Fields("管理者").Value = "0001"
	rs.Update()

	rs.MoveNext()

end

# **************************
# 接続解除
# **************************
if cn.State >= 1 then
	cn.Close()
end

print("終了しました\n")


CursorTypes, LockTypes, and CursorLocations

※ MySQL は 以下の三つの組み合わせのみ動作
adUseClient/adOpenStatic
adUseServer/adOpenForwardOnly
adUseServer/adOpenDynamic

※ ADO でデフォルトは adUseServer

エディタのタブの設定








タグ:ODBC MySQL ruby
posted by lightbox at 2018-04-10 19:46 | Pleiades | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり