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ファイルの呼び出し方法。

ショートコードを使った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のファイルフィールドを追加

記事、固定ページに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();
  }
}
スポンサーリンク

関連記事一覧

  1. この記事へのコメントはありません。

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)