1. TOP
  2. 2017年9月

[Wordpress] wp_add_inline_script が誤って呼び出されちゃう問題

カテゴリ:
Web
Wordpress
| トラックバック(0)
投稿者:yo yo
Notice: wp_add_inline_script が誤って呼び出されました。<script> タグを wp_add_inline_script() に渡さないでください。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 4.5.0 で追加されました) in ./wp-includes/functions.php on line 4139
function my_admin_script() {
	if ( ! is_admin() ){
		return;
	}
	ob_start();
?>
	<script type="text/javascript"> // ← これがいらない
		// javascriptの処理ずらずらー
	</script> // ← これがいらない
<?php
	$js = ob_get_contents();
	ob_end_clean();
	wp_add_inline_script( 'jquery-core', $js );
}
add_action( 'admin_enqueue_scripts', 'my_admin_script' );

wp_add_inline_scriptを使って<head />内へインラインスクリプトを追加する時、そもそも<script />が自動で追加されるので<script />の記述を書く必要がない。

[Wordpress] wp_deregister_script が誤って呼び出されちゃう問題

カテゴリ:
Web
Wordpress
| トラックバック(0)
投稿者:yo yo
Notice: wp_deregister_script が誤って呼び出されました。管理画面では jquery スクリプトの読み込みをオフにしないでください。フロントエンドテーマだけをターゲットにするには、wp_enqueue_scripts フックを使いましょう。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 3.6.0 で追加されました) in ./wp-includes/functions.php on line 4139
// テーマ内のfunction.php
function load_cdn() {
	if ( is_admin() ) {
		return;
	}
	wp_deregister_script('jquery');
}
add_action('init', 'load_cdn'); // 間違いだから消す
add_action('wp_enqueue_scripts', 'load_cdn'); // こっちが正解

ヘッダ内でデフォルトで読み込まれるjQueryをテーマフォルダのfunction.php内にwp_deregister_scriptを記述してキャンセルする。その時にアクションフックにwp_enqueue_scriptsを使ってないと警告される。上の例ではinitを使っていると警告がでる。

[Wordpress] 管理画面上部にNoticesを出力する。

カテゴリ:
Web
Wordpress
| トラックバック(0)
投稿者:yo yo
	// Notices
	add_action('admin_notices', 'current_pagehook' );
	function current_pagehook(){
		global $hook_suffix;
		if( !current_user_can( 'manage_options') ) return;
		echo '

hook_suffix : '.$hook_suffix.'

'; }

[PHP] class ArrayIteratorで配列の再帰処理

カテゴリ:
Perl / PHP
Web
| トラックバック(0)
投稿者:yo yo
$fruits = array(
                "apple" => "yummy",
                "orange" => "ah ya, nice",
                "grape" => "wow, I love it!",
                 "plum" => "nah, not me"
                );

$veg = array("potato" => "chips", "carrot" => "soup");
$grocery = array($fruits, $veg);
$obj = new ArrayObject( $grocery );

$it = new RecursiveIteratorIterator( new RecursiveArrayIterator($grocery));

foreach ($it as $key=>$val)
echo $key.":".$val."\n";
出力
--------
apple:yummy
orange:ah ya, nice
grape:wow, I love it!
plum:nah, not me
potato:chips
carrot:soup
http://jp2.php.net/manual/ja/class.arrayiterator.php

まんまコピペだけどコイツは便利。似たようなのにRecursiveArrayIterator クラスもある。

[Wordpress] update_attached_fileは$fileが既存値と同じだとfalseを返す?

カテゴリ:
Web
Wordpress
| トラックバック(0)
投稿者:yo yo

update_attached_file( $attachment_id, $file )の$fileが既に登録されているファイルパスと同じだとfalseを返す様だ。

ページの先頭に戻る