WordPress belülről

JavaScript fájlok bejegyzésenkénk, oldalanként

Nem is olyan régen a Magyar WordPress fórumon felmerült az a kérdés, hogy hogyan tudunk egy adott oldalhoz, bejegyzéshez egy JavaScript fájlt hozzáadni. Több megoldást is használhatunk, én maradtam a legegyszerűbbnél. Keresgéltem és találtam természetesen erre a feladatra egy kiváló megoldást. Ha a lentebb lévő kódot sablonod functions.php fájljába illeszted, akkor bejegyzések és oldalak írásánál egy plusz szövegbeviteli mezőt fogsz kapni, amiben egyszerűen a js fájlt kell megadnod.

add_action('admin_menu', 'digwp_custom_js_hooks');
add_action('save_post', 'digwp_save_custom_js');
add_action('wp_head','digwp_insert_custom_js');
function digwp_custom_js_hooks() {
	add_meta_box('custom_js', 'Egyedi JavaScript fájl neve', 'digwp_custom_js_input', 'post', 'normal', 'high');
	add_meta_box('custom_js', 'Egyedi JavaScript fájl neve', 'digwp_custom_js_input', 'page', 'normal', 'high');
}
function digwp_custom_js_input() {
	global $post;
	echo '<input type="hidden" name="custom_js_noncename" id="custom_js_noncename" value="'.wp_create_nonce('custom-js').'" />';
	echo '<input type="text" name="custom_js" id="custom_js" style="width:100%;" value="'.get_post_meta($post->ID,'_custom_js',true).'" />';
}
function digwp_save_custom_js($post_id) {
	if (!wp_verify_nonce($_POST['custom_js_noncename'], 'custom-js')) return $post_id;
	if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;
	$custom_js = $_POST['custom_js'];
	update_post_meta($post_id, '_custom_js', $custom_js);
}
function digwp_insert_custom_js() {
	if (is_page() || is_single()) {
		if (have_posts()) : while (have_posts()) : the_post();
		    $filename = get_post_meta(get_the_ID(), '_custom_js', true);
		    if ($filename) {
			 echo "<script type='text/javascript' src='" . get_bloginfo('template_url') . "/js/" . $filename . "' ></script>";
            }
		endwhile; endif;
		rewind_posts();
	}
}

Ha mindent jól csináltunk akkor a bejegyzés és oldal írásakor egy ilyen plusz beviteli mezővel büszkélkedhetünk.

A JavaScript fájlnak ezen kód esetén a sablonod könyvtárában kell lennie, azon belül is a js könyvtárban. Ha mindent jól csináltunk, akkor a head részbe ott is van a fájlunk.