LoginSignup
0
0

Wordpressで新規サイト作成時に使用するコードいろいろ(個人的)

Last updated at Posted at 2023-05-18

私個人的にWPで新規でサイトを作成する時に使うコード一覧

common.js
$(function(){

    //ハンバーガーメニュー
    $('.header-btn').click(function(){
    	$('body').toggleClass('active');
    });

    //スムーズスクロールリンク
	var adjust = 20;
	var speed = 400;
    var urlHash = location.hash;
    //異なるページにリンクする場合
    if(urlHash) {
    $('body,html').stop().scrollTop(0);
    setTimeout(function(){
        var target = $(urlHash);
        var position = target.offset().top - adjust;
        $('body,html').stop().animate({scrollTop:position}, speed);
    }, 100);}
    //同ページ
    $('a[href^="#"]').click(function(){
        var href= $(this).attr("href");
        var target = $(href == "#" || href == "" ? 'html' : href);
        var position = target.offset().top - adjust;
        $('body,html').animate({scrollTop:position}, speed, 'swing');
        return false;
    });
});
funcitons.php

//WPのjQueryはadminページ以外読ませない
add_action('wp_print_scripts','notimport_script',100);
function notimport_script() {
	if (!is_admin()) {
		wp_deregister_script('jquery'); 
	}
}

//基本的なcssとjs読み込み
function my_scripts() {
	wp_enqueue_style( 'style',  get_template_directory_uri().'/css/style.css',false,filemtime(get_stylesheet_directory().'/css/style.css'),false);
	wp_enqueue_style( 'slick-theme-tyle', '//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.min.css');
	wp_enqueue_style( 'slick-style', '//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css');
	wp_enqueue_script( 'jQuery_cdn', '//code.jQuery.com/jQuery-3.5.1.min.js');
	wp_enqueue_script( 'slick_cdn', '//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js');
}
add_action( 'wp_enqueue_scripts', 'my_scripts' );

//PHPエラーを出力しない
error_reporting(0);

//自動更新を無効にする
add_filter( 'automatic_updater_disabled', '__return_true' );

//テーマURLショートコード
add_shortcode('gtdu', 'shortcode_gtdu');
function shortcode_gtdu() {
return get_template_directory_uri();
}

//GNB ilにクラス・ID削除(カレントはそのまま)
add_filter('nav_menu_css_class', 'menu_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'menu_attributes_filter', 100, 1);
add_filter('page_css_class', 'menu_attributes_filter', 100, 1);
function menu_attributes_filter($var) {
return is_array($var) ? array_intersect($var, array('current-menu-item')) : '';
}

//固定ページのみ自動的に付与されるpタグやbrタグを無効
function disable_page_wpautop() {
if ( is_page() ) remove_filter( 'the_content', 'wpautop' );
}
add_action( 'wp', 'disable_page_wpautop' );

//404エラーをトップページに
add_action( 'template_redirect', 'is404_redirect_home' );
function is404_redirect_home() {
  if( is_404() ){
    wp_safe_redirect( home_url( '/' ) );
    exit();
  }
}

//固定ページにページングを追加した場合、そのページはリダイレクトさせない
add_filter('redirect_canonical','my_disable_redirect_canonical');
function my_disable_redirect_canonical( $redirect_url ) {
    if ( is_page('news-blog'))
    $redirect_url = false;
    return $redirect_url;
}

//categoryを削除する
function remcat_function($link) {
	return str_replace("/category/", "/", $link);
}
add_filter('user_trailingslashit', 'remcat_function');
	function remcat_flush_rules() {
		global $wp_rewrite;
		$wp_rewrite->flush_rules();
}
add_action('init', 'remcat_flush_rules');
	function remcat_rewrite($wp_rewrite) {
		$new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2));
		$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_filter('generate_rewrite_rules', 'remcat_rewrite');

//固定ページBodyのclassに、page-slug 追加
function pagename_class($classes = '') {
	if (is_page()) {
	$page = get_page(get_the_ID());
	$classes[] = 'page-'.$page->post_name;
	}
	return $classes;
   }
add_filter('body_class','pagename_class');

archive.php
//カスタム投稿のカテゴリー一覧表示:リンク無し
<ul>
	<?php
		$terms = get_terms('categories'); //categories=カテゴリーのターム
		foreach ( $terms as $term ) {
			echo '<li>'.$term->name.'</li>';
		}
	?>
</ul>

//カスタム投稿のカテゴリー一覧表示:リンク有り
<ul>
	<?php
		$terms = get_terms('categories');
		foreach ( $terms as $term ) {
			echo '<li><a href="'.get_term_link($term).'">'.$term->name.'</a></li>';
		}
	?>
</ul>

//カスタム投稿のカテゴリー一覧表示:投稿0でも表示
<ul>
	<?php
		$terms = get_terms('categories','hide_empty=0'); //空のタームも出力
		foreach ( $terms as $term ) {
			echo '<li><a href="'.get_term_link($term).'">'.$term->name.'</a></li>';
		}
	?>
</ul>

//各タームにクラスを追加する
<ul>
	<?php
		$terms = get_terms('categories');
		foreach ( $terms as $term ) {
			echo '<li><a href="'.get_term_link($term).'" '.'class="'.esc_attr($term->slug).'">'.$term->name.'</a></li>';
		}
	?>
</ul>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0