functions.phpに追加したい時に探すこと色々
ワードプレス
スポンサーリンク
functions.phpに追加したいことや何かいつも探してしまうこと。
目次
スポンサーリンク
管理画面にオリジナルスタイルシートを読み込ませる
functions.php
// 管理画面にオリジナルスタイルシートを読み込ませる
function postbox_container_custom_wp_admin_style() {
wp_enqueue_style('postbox_container-edit', get_stylesheet_directory_uri() . '/action-edit.css');
}
add_action('admin_enqueue_scripts', 'postbox_container_custom_wp_admin_style');
投稿フォーマット
functions.php
add_theme_support('post-formats', array( 'aside', 'gallery', 'image', 'link', 'quote', 'status', 'video', 'audio', 'chat' ));
カスタムフィールドで外部CSSを複数読み込み
functions.php
//カスタムフィールドで外部CSSを複数読み込み
function include_custom_css() {
if (is_single() || is_page()) {
if ($css = get_post_meta(get_the_ID(), 'customCSS', true)) {
echo "<link rel=\"stylesheet\" href=\"{$css}\" type=\"text/css\">\n";
}
}
}
add_action('wp_head', 'include_custom_css');
カテゴリ・アーカイブウィジェットの投稿数のカッコを取り除く
functions.php
//カテゴリ・アーカイブウィジェットの投稿数のカッコを取り除く
function remove_post_count_parentheses($output) {
$output = preg_replace('/<\/a>.*\((\d+)\)/', '<span class="count_vew">$1</span></a>', $output);
return $output;
}
add_filter('wp_list_categories', 'remove_post_count_parentheses');
add_filter('get_archives_link', 'remove_post_count_parentheses');
ショートコードを使ったphpファイルの呼び出し方法。
functions.php
//ショートコードを使ったphpファイルの呼び出し方法
function Include_my_php($params = array()) {
extract(shortcode_atts(array(
'file' => 'default'
), $params));
ob_start();
//include(get_theme_root() . '/' . get_template() . "/$file.php"); //子テーマ利用の時に動作しないのでコメントアウト
get_template_part($file, ''); //$fileで取得した外部PHPファイルを読み込みます
return ob_get_clean();
}
add_shortcode('myphp', 'Include_my_php'); //'myphp'がショートコードの文字列となります。
WordPress本文中の[ad]とショートコードを書き込んだ部分に広告を表示するカスタマイズ方法
WordPress本文中の[ad]とショートコードを書き込んだ部分に広告を表示するカスタマイズ方法
functions.php
//[ad]ショートコードに対して広告を表示する
function replace_ad_shortcode_to_advertisement_ex($the_content) {
$ad_shortcode = '[ad]';
$ad_code = <<< EOF
<div class="ad-space">
<div class="ad-label">スポンサーリンク</div>
<!-- 表示したい内容 -->
</div>
EOF;
$the_content = preg_replace('{^(<p>)?' . preg_quote($ad_shortcode) . '(</p>)?$}m', $ad_code, $the_content);
return $the_content;
}
add_filter('the_content', 'replace_ad_shortcode_to_advertisement_ex');
スポンサーリンク
記事、固定ページにCSSとJSのファイルフィールドを追加
functions.php
//Custom CSS Widget
add_action( 'admin_menu', 'custom_css_hooks' );
add_action( 'save_post', 'save_custom_css' );
add_action( 'wp_head','insert_custom_css' );
function custom_css_hooks() {
add_meta_box( 'custom_css', 'Custom CSS', 'custom_css_input', 'post', 'normal', 'high' );
add_meta_box( 'custom_css', 'Custom CSS', 'custom_css_input', 'page', 'normal', 'high' );
}
function custom_css_input() {
global $post;
echo '<input id="custom_css_noncename" name="custom_css_noncename" type="hidden" value="'.wp_create_nonce('custom-css').'" />';
echo '<input id="custom_js" name="custom_css" type="text" value="'.get_post_meta($post->ID,'_custom_css',true).'" />';
}
function save_custom_css($post_id) {
if ( !wp_verify_nonce( $_POST['custom_css_noncename'], 'custom-css' ) ) return $post_id;
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE) return $post_id;
$custom_css = $_POST['custom_css'];
update_post_meta( $post_id, '_custom_css', $custom_css );
}
function insert_custom_css() {
if ( is_page() || is_single() ) {
if ( have_posts() ) : while ( have_posts() ) : the_post();
echo "\n";
endwhile; endif;
rewind_posts();
}
}
functions.php
//Custom JS Widget
add_action( 'admin_menu', 'custom_js_hooks' );
add_action( 'save_post', 'save_custom_js' );
add_action( 'wp_head','insert_custom_js' );
function custom_js_hooks() {
add_meta_box( 'custom_js', 'Custom JS', 'custom_js_input', 'post', 'normal', 'high' );
add_meta_box( 'custom_js', 'Custom JS', 'custom_js_input', 'page', 'normal', 'high' );
}
function custom_js_input() {
global $post;
echo '<input id="custom_js_noncename" name="custom_js_noncename" type="hidden" value="'.wp_create_nonce('custom-js').'" />';
echo '<input id="custom_js" name="custom_js" type="text" value="'.get_post_meta($post->ID,'_custom_js',true).'" />';
}
function 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 insert_custom_js() {
if ( is_page() || is_single() ) {
if ( have_posts() ) : while ( have_posts() ) : the_post();
echo "<script type=\"text/javascript\" src=\""; echo get_stylesheet_directory_uri()."/".get_post_meta(get_the_ID(), '_custom_js', true)."\" charset=\"utf-8\"></script>\n";
endwhile; endif;
rewind_posts();
}
}
スポンサーリンク
この記事へのコメントはありません。