メディアサイズを ファンクション function で管理する 

G2でサイズ
MAX 781px wide
640 640 大
400 400 中
サムネイル 300 300 正方形

プラグSimple Image Sizes


//サムネイルサイズ増やす trueが強制切り抜き
add_image_size( ‘midashi’, 720, 999 );

こういれてたが 今は プラグイン

だが再度 ファンクションで管理しよう

検証の結果
ファンクションで同じ名前を入れれば
ダブらずに制御でいるようだ
そして
投稿にひょうじするかどうか

ぷらぐいんの表示するのチェックが優先
次に ファンクションのtrue が優先(投稿時の表示名がファンクションのnameになる OK)
って感じだったので

クロップも同じく プラグインが優先だわ
一回読み込まれると 後から帰れん?
一回プラグインの方で保存しちゃうと駄目みたい

今後は できるだけファンクのみにしたほうがいいな
でりーとすればなおるわ

基本プラグインでなく(チェクをはずし)
ファンクションで制御しよう

最後に
regenerate-thumbnailsでリセット

http://www.warna.info/archives/2270/

function add_custom_image_sizes() {
    global $my_custom_image_sizes;
    $my_custom_image_sizes = array(
        'x-small' => array(
            'name'       => '極小', // 選択肢のラベル名
            'width'      => 30,    // 最大画像幅
            'height'     => 30,    // 最大画像高さ
            'crop'       => true,  // 切り抜きを行うかどうか
            'selectable' => true   // 選択肢に含めるかどうか
        ),
        'x-large' => array(
            'name'       => '極大',
            'width'      => 1000,
            'height'     => 1000,
            'crop'       => false,
            'selectable' => false
        ),
    );
    foreach ( $my_custom_image_sizes as $slug => $size ) {
        add_image_size( $slug, $size['width'], $size['height'], $size['crop'] );
    }
}
add_action( 'after_setup_theme', 'add_custom_image_sizes' );
function add_custom_image_size_select( $size_names ) {
    global $my_custom_image_sizes;
    $custom_sizes = get_intermediate_image_sizes();
    foreach ( $custom_sizes as $custom_size ) {
        if ( isset( $my_custom_image_sizes[$custom_size]['selectable'] ) && $my_custom_image_sizes[$custom_size]['selectable'] ) {
            $size_names[$custom_size] = $my_custom_image_sizes[$custom_size]['name'];
        }
    }
    return $size_names;
}
add_filter( 'image_size_names_choose', 'add_custom_image_size_select' );

ファンクション 管理画面のタイトルの文字を置き換え 外部リンクを挿入

//管理画面のタイトルの文字を置き換え 外部リンクを挿入
//クォーテーションの入れ子にポイント
add_action( 'admin_head', 'change_text' );
function change_text() {
	$echo1 = "<span>地区</span> <a href='http://www.iezo.net/tiikinavi/aichi/kasugai/' target='_blank'>中学校区</a>";
	  echo '
	  <script type="text/javascript">
	  jQuery(document).ready(function($){
	$("#cikudiv h2").html("'.$echo1.'");
		});

	  </script>
	  ';
}

他ユーザーの記事を除外

//他ユーザーの投稿を編集する権限がない場合に、一覧表示から他ユーザーの記事を除外
function exclude_other_posts( $wp_query ) {
    if ( isset( $_REQUEST['post'] ) && post_type_exists( $_REQUEST['post'] ) ) {
        $post_type = get_post_type_object( $_REQUEST['post'] );
        $cap_type = $post_type->cap->edit_other_posts;
    } else {
        $cap_type = 'edit_others_posts';
    }
 
    if ( is_admin() && $wp_query->is_main_query() && ! $wp_query->get( 'author' ) && ! current_user_can( $cap_type ) ) {
        $user = wp_get_current_user();
        $wp_query->set( 'author', $user->ID );
    }
}
add_action( 'pre_get_posts', 'exclude_other_posts' );
function exclude_other_posts( $wp_query ) {
    if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) {
        $post_type = get_post_type_object( $_REQUEST['post_type'] );
        $cap_type = $post_type->cap->edit_other_posts;
    } else {
        $cap_type = 'edit_others_posts';
    }
 
    if ( is_admin() && $wp_query->is_main_query() && ! $wp_query->get( 'author' ) && ! current_user_can( $cap_type ) ) {
        $user = wp_get_current_user();
        $wp_query->set( 'author', $user->ID );
    }
}
add_action( 'pre_get_posts', 'exclude_other_posts' );
所有 (1) | すべて (7) | 公開済み (4) | 下書き (3)

の数字が合わなくなってしまうのが気になる方は、CSSで .count に display: none; があたるようにしてください。

/*ブログ投稿一覧カラムの上の部分*/
.post-type-post .subsubsub .count,.post-type-post .subsubsub .all,

http://www.warna.info/archives/2557/

/カスタムフィールドからgooglemapの経度緯度を取得し 入れるコード

//カスタムフィールドからgooglemapの経度緯度を取得し 入れるコード
function replace_post_address($id) {
    $post = get_post($id);
    // post_typeを判定(post, page, カスタム投稿)
    if( $post->post_type == 'shop' ){
	    $custom_fields = get_post_custom($id);
	    $custom_field_address = $custom_fields['所在地'];
	    $googleMapsApiData = json_decode(@file_get_contents('http://maps.google.com/maps/api/geocode/json?sensor=false&address='.urlencode($custom_field_address[0])),ture);
		//緯度経度を取得
$lat = $googleMapsApiData['results'][0]['geometry']['location']['lat'];//コレが緯度
$lng = $googleMapsApiData['results'][0]['geometry']['location']['lng'];//コレが経度

		// カスタムフィールド(_lat)がセットされているか
    	if (isset($custom_fields['_lat'][0])) {
			update_post_meta($id, '_lat', $lat);
    	} else {
    		add_post_meta($id, '_lat', $lat);
    	}

    	if (isset($custom_fields['_lng'][0])) {
			update_post_meta($id, '_lng', $lng);
    	} else {
    		add_post_meta($id, '_lng', $lng);
    	}
    }
}
add_action( 'wp_insert_post', 'replace_post_address' );

参考

http://com4tis.net/wordpress-customfield-use-customfield-register/
http://www.sandalot.com/wordpress%E3%81%A7%E6%96%B0%E8%A6%8F%E6%8A%95%E7%A8%BF%E6%99%82%E3%80%81%E5%88%A5%E3%81%AA%E6%8A%95%E7%A8%BF%E3%82%82%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
http://smkn.xsrv.jp/blog/2012/12/post-number-to-latlng-with-google-maps-ap/
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/update_post_meta

http://easyramble.com/wordpress-meta-keywords-with-custom-field.html

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_post_meta

get_the_term_listの並び順をオーダー通りにファンクション

//echo get_the_term_list( $post->ID, ‘sekou_chiiki’, ”, ‘・’, ” );の並び順をオーダー通りに出力
function set_the_terms_in_order ( $terms, $id, $taxonomy ) {
$terms = wp_cache_get( $id, “{$taxonomy}_relationships_sorted” );
if ( false === $terms ) {
$terms = wp_get_object_terms( $id, $taxonomy, array( ‘orderby’ => ‘term_order’ ) );
wp_cache_add($id, $terms, $taxonomy . ‘_relationships_sorted’);
}
return $terms;
}
add_filter( ‘get_the_terms’, ‘set_the_terms_in_order’ , 10, 4 );

function do_the_terms_in_order () {
global $wp_taxonomies;
// the following relates to tags, but you can add more lines like this for any taxonomy
$wp_taxonomies[‘post_tag’]->sort = true;
$wp_taxonomies[‘post_tag’]->args = array( ‘orderby’ => ‘term_order’ );
}
add_action( ‘init’, ‘do_the_terms_in_order’);

WP4.2テーマ自動絵文字削除・停止ファンクション

//絵文字削除
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

かんりがめんもでも

//絵文字スクリプト&CSS 削除
function disable_emoji() {
     remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
     remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
     remove_action( 'wp_print_styles', 'print_emoji_styles' );
     remove_action( 'admin_print_styles', 'print_emoji_styles' );    
     remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
     remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );    
     remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
}
add_action( 'init', 'disable_emoji' );

スマフォ対応 簡易 簡単 即席 css スマフォ分岐 

http://millkeyweb.com/if-mobile/

ファンクション

function is_mobile() {
  $useragents = array(
    'iPhone',          // iPhone
    'iPod',            // iPod touch
    'Android',         // 1.5+ Android
    'dream',           // Pre 1.5 Android
    'CUPCAKE',         // 1.5+ Android
    'blackberry9500',  // Storm
    'blackberry9530',  // Storm
    'blackberry9520',  // Storm v2
    'blackberry9550',  // Storm v2
    'blackberry9800',  // Torch
    'webOS',           // Palm Pre Experimental
    'incognito',       // Other iPhone browser
    'webmate'          // Other iPhone browser
  );
  $pattern = '/'.implode('|', $useragents).'/i';
  return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
<?php if (is_mobile()) : ?>
  // スマートフォン用コンテンツ
<?php else: ?>
  // PC・タブレット用コンテンツ
<?php endif; ?>

こいつで タブレットをはしょって分岐できる

br をはしょりたいからページのどこかに

  <?php if (is_mobile()) : ?>
<style type="text/css">
.top_p br, .smap br { display:none;
}
</style>
<?php else: ?><?php endif; ?>

と記入
samp とつけたbrは改行されない

即席対応で
どうしても改行させたい倍はpでくくりなおす
あけたい場合はpに全角スペースでOK

http://www.msng.info/archives/2013/03/turning-off-html-br-with-css.php

さらにはここは完全にPCの文字バランスを出したい場合

div#textArea {
    -webkit-text-size-adjust: 100%;
}

こんなんあった
heightをしていしなくともよい

bodyにいれると全部PC表示

//新スマフォ分岐
function is_mobile(){
    $useragents = array(
        'iPhone', // iPhone
        'iPod', // iPod touch
        'Android.*Mobile', // 1.5+ Android *** Only mobile
        'Windows.*Phone', // *** Windows Phone
        'dream', // Pre 1.5 Android
        'CUPCAKE', // 1.5+ Android
        'blackberry9500', // Storm
        'blackberry9530', // Storm
        'blackberry9520', // Storm v2
        'blackberry9550', // Storm v2
        'blackberry9800', // Torch
        'webOS', // Palm Pre Experimental
        'incognito', // Other iPhone browser
        'webmate' // Other iPhone browser
 
    );
    $pattern = '/'.implode('|', $useragents).'/i';
    return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}

アーカイブページ等の記事の並び替え方法

参考 http://ateitexe.com/wordpress-archive-sort-popular/

まずパーマーリンクを
投稿名にしなければならん

ポストタイプアーカイブ
http://www.d-format1.com/car/
のようにケツにスラッシュで終わらなかん


固定ページでは
is_main_くえり がポストタイプを指定できなかったな〜
カスタムポストでなく ポストならできるかも

URLに
?sort=newerのように

?自分できめた文字=自分で決めた文字

というURLをつけるように

ボタンをつくる。

簡単にコードをまとめたやつを書こう

<?php
if ( is_archive() || is_search() ) { //アーカイブか検索ページだったら
    global $wp_query;
    $total_results = $wp_query->found_posts; //件数を取得しておく
	
//※ソールドアウトの設定確認
}
?>
 



   
</div></h2>



<?php //※1 2ページ目以降でボタンを押されても、1ページ目に飛ぶようにURLを指定
$url = explode('/', $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
$url_str ='http://'.$url[0].'/'.$url[1].'/';
$sortset = (string)filter_input(INPUT_GET, 'sort'); //信頼できないのでチェック
?>

<div class="change_bottan_arc">

取り扱い車両:<?php echo $total_results; ?>件<br />

並び替え:
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="newer"/>
    <input type="submit" value="新着順" />
</form>
</form>
<!--|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="older"/>
    <input type="submit" value="古い" />
</form>-->
|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_price_low"/>
    <input type="submit" value="価格が安い" />
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_price_high"/>
    <input type="submit" value="価格が高い" />
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_km_low"/>
    <input type="submit" value="走行距離が短い" />
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_year_new"/>
    <input type="submit" value="年式が新しい" />
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_cc_big"/>
    <input type="submit" value="排気量大" />
</form>
|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_cc_small"/>
    <input type="submit" value="排気量小" />
</form>
</div>
    <input type="hidden" name="sort" value="newer"/>
    <input type="submit" value="新着順" />

この部分が基本

あとは

ファンクションに

イズメインクエリを指定してやる

//こっから本番
function SortArchive( $query ) {
 //管理画面スルー	
    if ( is_admin() || ! $query->is_main_query() )
        return;
 //こっから
    if ( $query->is_category() || $query->is_archive() ) {
        $sortset = (string)filter_input(INPUT_GET, 'sort');
        //if ( $sortset != 'older' && $sortset != 'car_price_high' && $sortset != 'car_price_low' ) {
		if ( $sortset == 'new' ) {
            $query->set( 'orderby', 'date' ); //新しい デフォ
        } 
		elseif ( $sortset == 'older' ) { //記事古い
            $query->set( 'orderby', 'date' );
            $query->set( 'order', 'ASC' );
        } 
		elseif ( $sortset == 'car_price_high' ) { //価格高い
            $query->set( 'meta_key', 'car_price' );
            $query->set( 'orderby', 'meta_value_num' );
        } 
		elseif ( $sortset == 'car_price_low' ) { //安い
            $query->set( 'meta_key', 'car_price' );
            $query->set( 'orderby', 'meta_value_num' );
            $query->set( 'order', 'ASC' );
        }
		
			elseif ( $sortset == 'car_km_low' ) { //走行距離が短い
            $query->set( 'meta_key', 'car_km' );
            $query->set( 'orderby', 'meta_value_num' );
            $query->set( 'order', 'ASC' );
        }
		
			elseif ( $sortset == 'car_year_new' ) { //年式が新しい
            $query->set( 'meta_key', 'car_year' );
            $query->set( 'orderby', 'meta_value_num' );
            $query->set( 'order', 'DESC' );
        }
		
			elseif ( $sortset == 'car_cc_big' ) { //排気量大
            $query->set( 'meta_key', 'car_cc' );
            $query->set( 'orderby', 'meta_value_num' );
            $query->set( 'order', 'DESC' );
        }
		
			elseif ( $sortset == 'car_cc_small' ) { //排気量小
            $query->set( 'meta_key', 'car_cc' );
            $query->set( 'orderby', 'meta_value_num' );
            $query->set( 'order', 'ASC' );
        }
        return;
    }
}
add_action( 'pre_get_posts', 'SortArchive' );

こうだ!

空のカスタムフィールどの場合の表示は無視してそのままでるからそこは
制御してない

あとは

カレントを設定するコードを書いたらOKか?

こうした↓
デフォのアーカイブも新着がかれんとされるようにね

<?php //※1 2ページ目以降でボタンを押されても、1ページ目に飛ぶようにURLを指定
$url = explode('/', $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
$url_str ='http://'.$url[0].'/'.$url[1].'/';
$sortset = (string)filter_input(INPUT_GET, 'sort'); //信頼できないのでチェック
?>

<div class="change_bottan_arc">

取り扱い車両:<?php echo $total_results; ?>件<br />

並び替え:
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="newer"/>
<?php if ( $sortset == 'newer' || $sortset == '' ): ?>
    <input type="submit" class="sort_current" value="新着順" />
<?php else: ?>
    <input type="submit" value="新着順" />
<?php endif; ?>
</form>
</form>
<!--|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="older"/>
    <input type="submit" value="古い" />
</form>-->
|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_price_low"/>
    <?php if ( $sortset == 'car_price_low' ): ?>
    
    <input type="submit" value="価格が安い"  class="sort_current" />
    <?php else: ?>
    <input type="submit" value="価格が安い" />
    <?php endif; ?>
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_price_high"/>
    <?php if ( $sortset == 'car_price_high' ): ?>
    <input type="submit" value="価格が高い"  class="sort_current" />
        <?php else: ?>
        <input type="submit" value="価格が高い" />
    <?php endif; ?>
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_km_low"/>
    <?php if ( $sortset == 'car_km_low' ): ?>
    <input type="submit" value="走行距離が短い"  class="sort_current" />
        <?php else: ?>
        <input type="submit" value="走行距離が短い" />
    <?php endif; ?>
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_year_new"/>
    <?php if ( $sortset == 'car_year_new' ): ?>
    <input type="submit" value="年式が新しい"  class="sort_current" />
        <?php else: ?>
         <input type="submit" value="年式が新しい" />
    <?php endif; ?>
</form>

|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_cc_big"/>
    <?php if ( $sortset == 'car_cc_big' ): ?>
    <input type="submit" value="排気量大"  class="sort_current" />
        <?php else: ?>
        <input type="submit" value="排気量大" />
    <?php endif; ?>
</form>
|
<form method="get" action="<?php echo $url_str //※1?>">
    <input type="hidden" name="sort" value="car_cc_small"/>
    <?php if ( $sortset == 'car_cc_small' ): ?>
    <input type="submit" value="排気量小"  class="sort_current" />
        <?php else: ?>
        <input type="submit" value="排気量小" />
    <?php endif; ?>
</form>

cssも書いとく

/*-----------------------並べ替えボタン*/

.change_bottan_arc{ margin-top:20px; margin-bottom:10px;font-size: 80%;}

.change_bottan_arc form{display: inline!important;}

.change_bottan_arc input[type='submit']{
color: #aa9a85;
    padding: 0;
    margin: 0;
    box-shadow: none!important;
    background: none!important;
    border: none!important;
font-size: 100%;
    text-decoration: underline;
    cursor: pointer;
	}
.change_bottan_arc .sort_current{ font-weight: normal!important;
    text-decoration: none!important;
	color:#e60012!important}

検索結果 調整 WP Custom Fields Search

まず問題だったこと
それは
古いコードがファンクションに書いてあったため複雑になった。

/ 検索結果から固定ページを除外
function search_filter($query) {
  if (!$query -> is_admin && $query -> is_search) {
    $query -> set('post_type', array('post','asobu','share','seikatsu','iryou','manabu','koukyou','ofuroyado'));
  }
  return $query;
}
add_filter('pre_get_posts', 'search_filter');

つまりポストタイプを指定して固定ページを除外してた 多分

これをまず消す。

これで多分ポストタイプ関係無しに検索できるはず

サーチエブリシングを入れる。

これでカスタムフィールドの文字も検索できるはず。

ただし絞り込みプラグインで
ポストタイプを指定する時
and or が指定できない気がする。

サーチページで分岐できれば必要ないが。。

ポストタイプを指定する方法。

–引用—-
● フィールド1つ目の設定内容
このフィールドでやっている事。
・検索は、カスタム投稿「post-typea」の中から行うようにする
—–
データタイプ:「Post Type」を指定
—–
ウィジェット:「非表示の定数」を指定
Post Typeは、ユーザーが指定するものではないので、このフィールドは表示されません。
比較:同等
—–
ウィジェットの設定:post-typea
—–

● フィールド2つ目の設定内容
このフィールドでやっている事。
・検索条件は、カスタムフィールドの登録値をプルダウンで表示するようにする。
—–
データタイプ:「カスタムフィールド」を指定
—–
ウィジェット:「ドロップダウン」を指定
指定のカスタムフィールドに登録されている値がドロップダウンとなって表示する
—–
比較:同等
—–

投稿数を制限する(カスタムポストタイプ対応)

function posts_limit() {
	global $userdata, $post_type, $wpdb;
	if ( $post_type === 'ポストタイプ' ) {
		$item_count = $wpdb->get_var( "SELECT count(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'ポストタイプ' AND post_author = $userdata->ID" );
		if ( $item_count >= '制限数' ) { wp_die( "エラーメッセージ" ); }
	}
	return;
}
add_action('admin_head-post-new.php', 'posts_limit');

functions.php 未検証

サイドバーのまとめ

//サイドバー
register_sidebars(5, array('before_widget' => '<div>',
	'after_widget' => '</div>'));

ファンクションに書く

<?php $args = array(
	'name'          => sprintf(__('Sidebar %d'), $i ),
	'id'            => 'sidebar-$i',
	'description'   => ''
	'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget'  => '</li>',
	'before_title'  => '<h2 class="widgettitle">',
	'after_title'   => '</h2>' ); ?>

デフォルトが上

抜粋 the_excerpt の[…] を変える


//echo mb_substr(get_the_excerpt(),0, 240);の...を変える
function new_excerpt_more($more) {
	return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');



//抜粋文字数指定 マルチバイトパッチ必要
function change_excerpt_mblength($length) {
return 111;
}
add_filter('excerpt_mblength', 'change_excerpt_mblength');



unction.phpに以下のコードを追加しますと、「続きを読む」などのリンクに変更

function new_excerpt_more($post) {
    return '<a href="'. get_permalink($post->ID) . '">' . '...続きを読む' . '</a>';    
}    
add_filter('excerpt_more', 'new_excerpt_more');


オリジナル
//抜粋カスタマイズ
function new_excerpt_more($post) {
    return '...<div class="blog_more"><a href="'. get_permalink($post->ID) . '">' . '続きを読む▶▶' . '</a></div>';    
}    
add_filter('excerpt_more', 'new_excerpt_more');

親カテゴリ 分岐 

※なんかうまくいかなかった

ファンクションへ
タクソノミーだけなら下の部分だけでOK

/* For categories */
if ( ! function_exists( 'post_is_in_descendant_category' ) ) :
function post_is_in_descendant_category( $cats, $_post = null ) {
  foreach ( (array) $cats as $cat ) {
		// get_term_children() accepts integer ID only
		$descendants = get_term_children( (int) $cat, 'category' );
		if ( $descendants && in_category( $descendants, $_post ) )
			return true;
	}
	return false;
}
function post_is_in_category_slug($slug){
	global $post;
	$post_id = ( isset($post->ID) ) ? $post->ID : '';
	if ( in_category( $slug, $post_id ) || post_is_in_descendant_category( get_term_by('slug',$slug,'category'), $post_id ) ){
		return true;
	} else {
		return false;
	}
}
endif; //function_exists 'post_is_in_descendant_category'
 
 
/* For taxonomies */
if ( ! function_exists( 'post_is_in_descendant_taxonomy' ) ) :
function post_is_in_descendant_taxonomy( $terms, $taxonomy, $_post = null ) {
	foreach ( (array) $terms as $term ) {
		// get_term_children() accepts integer ID only
		$descendants = get_term_children( (int) $term, $taxonomy );
		if ( $descendants && has_term( $descendants, $taxonomy, $_post ) )
			return true;
	}
	return false;
}
function post_is_in_taxonomy_slug($slug, $taxonomy){
	global $post;
	$post_id = ( isset($post->ID) ) ? $post->ID : '';
	if ( has_term( $slug, $taxonomy, $post_id ) || post_is_in_descendant_taxonomy( get_term_by('slug',$slug,$taxonomy), $taxonomy, $post_id ) ){
		return true;
	} else {
		return false;
	}
}
endif; //function_exists 'post_is_in_descendant_taxonomy'
//宅
if ( post_is_in_taxonomy_slug('Cat-A', カスタムタクソノミー名) )
//具体例
<?php
  if (post_is_in_taxonomy_slug('ホームページ制作', cate_jirei) ):
?>
<?php endif; ?>

//カテ

if ( post_is_in_category_slug('Cat-A')

春日井ナビ リフォーム時覚え

・協賛はsimple タクソノミー

・アドミンマイズでダッシュボード権限を投稿者になくし
リダイレクト指示部分で別に飛ばす。

・ロールエディタは 他人の記事を見れなくする。
チェックを外す部分は other delete とother edits

・その他 他人の記事を見れなくすると書いてあったファンクション様コードが2つあった。

http://qiita.com/halhide/items/8c85d4ea8f8584721aeb

//ロールしてるから効果わからんが自分だけポスト
function filter_other_post( $wp_query ) {
    global $pagenow, $current_user;

    if($pagenow != 'admin-ajax.php' && $pagenow != "edit.php" ) {
        return;
    }

    if($current_user->roles[0] == "administrator") {
        //管理者はすべて閲覧可能
        return;
    }

    $wp_query->query_vars['author'] = $current_user->ID;
}

もう一個はみつけられず。

ロールでバグってて、
春日井の食でクーポン有りの投稿だけ他のユーザーから削除までできる感じになっていて、
クーポンあり という新しいカテゴリを作り コードも入換え すべて記事をアサインしなおした。
一応治ったっぽい。

ファンクション分岐

 if (current_user_can('level_10')) {
//ここに投稿一覧に順位を書いた

}


さらに発見

 if (!current_user_can('level_10')) {
//ここに投稿一覧に順位を書いた

}
こう書くと逆に管理者が見えなくなる

・記事一覧カラムの表示をシンプル化した。
そのためアドミンcssに強制ディスプレイnoneで消した。

・カスタムフィールドってやつを消したかったから
カスタムフィールドテンプレートのグローバル設定
「編集リストページのカスタムフィールドカラムの表示を禁止する場合:
カスタムフィールドカラムを無効にする(クイック編集も動きません)」

をチェックした

・タイトルを入力の文字替え

//タイトルを入力してくださいを変える
function change_default_title( $title ) {
	$screen = get_current_screen();
	if ( 'shoku'or'asobu'or'share'or'seikatsu'or'iryou'or'manabu'or'koukyou'or'ofuroyado' == $screen->post_type ) {
		$title = '店舗名を入力';
	} else if ( $screen -> post_type == 'post' ) {
		$title = 'これは投稿を変更します';
	}

	return $title;
}
add_filter('enter_title_here', 'change_default_title');

★カスタムフィールドテンプレートで
改造方法

・アドミンcssでフロート クリアボス
これはカスタムアドミンにかいてもよし
・グローバルセッティングで
初期化・保存ボタンを消す
テンプレートタイトルをボックス名へ

表示順を変える カテゴリ インデックス などのアーカイブ

add_action( 'pre_get_posts', 'foo_modify_query_post_order' );
function foo_modify_query_post_order( $query ) {
  if ( $query->is_tax('genre') && $query->is_main_query() ) {
    $query->set( 'orderby', 'menu_order' );
    $query->set( 'order', 'DESC' );
  }
}

add_action( 'pre_get_posts', 'foo_modify_query_post_order2' );
function foo_modify_query_post_order2( $query ) {
  if ( $query->is_tax('test') && $query->is_main_query() ) {
    $query->set( 'orderby', 'menu_order' );
    $query->set( 'order', 'DESC' );
  }
}

参考http://gatespace.jp/2012/09/10/modify_main_queries/

<?php
/**
 * pre_get_posts を使ってメインクエリーを書き換える
 * http://notnil-creative.com/blog/archives/1996
 */
 
add_action( 'pre_get_posts', 'foo_modify_main_query' ); // pre_get_postsにフック
// フック時に使う関数
function foo_modify_main_query( $query ) {
  if ( is_admin() || ! $query->is_main_query() )
    return;
 
  if ( $query->is_home() ) { // ホーム
    $query->set( 'post_type', array( 'post', 'news' ) ); // 投稿とカスタム投稿タイプ news を含める
    return;
  }
 
  if ( $query->is_month() ) { // 月別アーカイブ
    $query->set( 'posts_per_page', -1 ); // すべて表示
    return;
  }
 
  if ( $query->is_category() ) { // カテゴリーアーカイブ
    $query->set( 'posts_per_page', 10 ); // 10件ずつ表示
    return;
  }
 
}

fanction php まとめ






//サムネイルサイズ増やす trueが強制切り抜き
add_image_size( 'jirei_big', 703, 467,true);//ギャラリー横用
add_image_size( 'jirei_big_height', 703, 467); //ギャラリー正方形 縦用

add_image_size( 'jirei_small', 110, 110, true  );
add_image_size( 'blog_sam', 230, 153, true  );
add_image_size( 'side_new_post_sam', 68, 68, true  );



//タイトルを入力してくださいを変える
function change_default_title( $title ) {
	$screen = get_current_screen();
	if ( 'shop' == $screen->post_type ) {
		$title = '店舗名をご入力ください。';
	} else if ( 'shop_profiless' == $screen->post_type ){
		$title = 'ブログニックネームを入力';
	} else if ( $screen -> post_type == 'post' ) {
		$title = 'これは投稿だけ変更します';
	}

	return $title;
}
add_filter('enter_title_here', 'change_default_title');

//管理フッターテキスト
function remove_footer_admin () {
    echo 'サイト名';
}
add_filter('admin_footer_text', 'remove_footer_admin');



//投稿後カテゴリ階層維持
function lig_wp_category_terms_checklist_no_top( $args, $post_id = null ) {
    $args['checked_ontop'] = false;
    return $args;
}
add_action( 'wp_terms_checklist_args', 'lig_wp_category_terms_checklist_no_top' );


//管理メニュー追加
function test_menu_page() {
    $siteurl = get_option( 'siteurl' );
?>
<div class="wrap">
    <h2>登録ガイド</h2>
<?php include("tebiki.php"); ?>
   </div>
<?php
}
function test_admin_menu() {
    add_menu_page( '登録ガイド', '登録ガイド', 'read',
		   __FILE__, 'test_menu_page' );
}
add_action( 'admin_menu', 'test_admin_menu' );



//管理バー消す管理者以外
//function my_function_admin_bar(){
//return false;
//}
//add_filter( 'show_admin_bar' , 'my_function_admin_bar');

//管理バー消す管理者以外
//function my_function_admin_bar($content) {
//return ( current_user_can("administrator") ) ? $content : false;
//}
//add_filter( 'show_admin_bar' , 'my_function_admin_bar');



//管理画面css
function wp_custom_admin_css() {
	echo "\n" . '<link rel="stylesheet" type="text/css" href="' .get_bloginfo('template_directory'). '/custom-admin-css.css' . '" />' . "\n";
}
add_action('admin_head', 'wp_custom_admin_css', 100);

//ログイン画面css
function login_css() {
    echo '<link rel="stylesheet" type="text/css" href="'.get_bloginfo("template_directory").'/login.css">';
}
add_action('login_head', 'login_css');










====http://ja.forums.wordpress.org/topic/3063=====
// 投稿画面の [表示オプション|表示する項目]のオプション値をフィルタする
function my_get_user_option_meta_box_hidden_post($result, $option, $user){
	return array('postexcerpt', 'trackbacksdiv', 'commentstatusdiv', 'commentsdiv', 'slugdiv', 'authordiv', 'revisionsdiv', 'tagsdiv-post_tag');
}
add_filter('get_user_option_metaboxhidden_post', 'my_get_user_option_meta_box_hidden_post', 10, 3);
add_filter('get_user_option_managepostcolumnshidden', 'my_get_user_option_meta_box_hidden_post', 10, 3);

// 投稿画面の[表示オプション|スクリーンレイアウト|列の数]のオプション値をフィルタする
function my_get_user_option_screen_layout_post($result, $option, $user){
	return 2;
}
add_filter('get_user_option_screen_layout_post', 'my_get_user_option_screen_layout_post', 10, 3);

// カテゴリ->カスタムフィールド->公開 に毎回並び替える
function my_footer() {
echo '<script type="text/javascript">
  //<![CDATA[
  jQuery(function(){
	jQuery("#normal-sortables").prepend(jQuery("#side-sortables").children("#categorydiv"));
	jQuery("#normal-sortables").append(jQuery("#side-sortables").children("#submitdiv"));
	jQuery("#categorydiv").prependTo(jQuery("#normal-sortables"));
	jQuery("#submitdiv").appendTo(jQuery("#normal-sortables"));
  });
  //]]>
  </script>';
}
add_action('admin_footer', 'my_footer');

====セットhttp://ja.forums.wordpress.org/topic/3063=====


//特定のカテゴリと特定のタグで絞った記事数の表示方法
function taxonomy_found_posts_num() {
    $args = array(
'post_type' => array('shoku','asobu','share','seikatsu','iryou','manabu','koukyou','ofuroyado'), //カスタム投稿名
    );
    $my_query = new WP_Query($args);
    return $my_query->found_posts;
}
//表示箇所に
//<?php echo taxonomy_found_posts_num('hokkaido','タグ1'); 件<br />
//<?php echo taxonomy_found_posts_num('aomori','タグ2'); 件
















topのfeatured-contentを使う為のfanction おすすめ記事

14だと
150行目くらいか

// Add support for featured content.
	add_theme_support( 'featured-content', array(
		'featured_content_filter' => 'twentyfourteen_get_featured_posts',
		'max_posts' => 6,
	) );

こうかいたりますね

featuredをつかいますよって宣言らしい
さいどばーとおなしやね
ただこれはポストタイプと記事数のみ指定できる
ここ触っても 記事更新しないと反せされない

これの下にどこでもいいから

//twentyfourteen_get_featured_postsより後に書く topの注目記事の制御
function myfuture($array){
    //たとえばサムネイルのある投稿だけを6件取得する
    $array = get_posts(array(
        'meta_key' => '_thumbnail_id',
        'numberposts' => 6,
			'orderby'=> 'date',
		'order' => 'ASC',//追加
    ));
    return $array;
}
 
add_filter('twentyfourteen_get_featured_posts','myfuture',100);

これいれて調整twentyfourteen_get_featured_postsにかかるやつらしい

http://wood-roots.com/web%E5%88%B6%E4%BD%9C/wordpress-web%E5%88%B6%E4%BD%9C/twenty-fourteen%E3%81%A7%E3%83%88%E3%83%83%E3%83%97%E3%81%AE%E7%9B%AE%E7%AB%8B%E3%81%A4%E8%A8%98%E4%BA%8B%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95

最初参考

http://translate.google.co.jp/translate?hl=ja&sl=en&u=http://jetpack.me/support/featured-content/&prev=/search%3Fq%3Dfeatured-content%26espv%3D210%26es_sm%3D91

中村 body_class

//特定の条件でボディにクラスをつける
add_filter('body_class','my_class_names');
function my_class_names($classes) {
if(is_page( '62' )){
// add 'class-name' to the $classes array
$classes[] = 'list-view';
// return the $classes array
}
return $classes;
}
 

http://memocarilog.info/wordpress/theme-custom/3001 参考

これで固定ページのクエリポストにも
list-viewをつけて

アーカイブぺーじのtw14のcssを

縦横比によって出力する画像サイズを分ける(分岐)

//カスタムフィールドスイートで今回は使う
 <?php
$fields = $cfs->get('jirei_imgs');
foreach ($fields as $field) :
?>

<?php
 $attachment_id = $field['jirei_img'];
 
 
 $sample_photo = wp_get_attachment_image_src($attachment_id,'jirei_big_height');
 $sample_photo2 = wp_get_attachment_image($attachment_id,'jirei_big');
 $sample_photo3 = wp_get_attachment_image($attachment_id,'jirei_big_height');
 ?>
<a href="#">

<?php if($sample_photo[1] > $sample_photo[2]): ?>
<?php 
echo $sample_photo2;
?>
<?php else: ?>
<?php 
echo $sample_photo3;
?>
<?php endif; ?>
</a>

<?php
endforeach;
?>

分析 効率化バージョン

<?php
 $attachment_id = $field['jirei_img'];//ループギャラリーの画像を取得
//ここから分岐
 $sample_photo = wp_get_attachment_image_src($attachment_id,'jirei_big_height');//wp_get_attachment_image_srcで切り抜かないバージョンサイズを取得
 ?>
<a href="#">

<?php if($sample_photo[1] > $sample_photo[2]): //横が縦より大きい場合?>
<?php 
 $sample_photo2 = wp_get_attachment_image($attachment_id,'jirei_big'); //切り抜いたバージョン収納
echo $sample_photo2;
?>
<?php else: ?>
<?php 
$sample_photo3 = wp_get_attachment_image($attachment_id,'jirei_big_height');//切り抜かないバージョン収納
echo $sample_photo3;
?>
<?php endif; ?>
</a>

ファンクションに

//サムネイルサイズ増やす trueが強制切り抜き
add_image_size( 'jirei_big', 703, 467,true);//ギャラリー横用
add_image_size( 'jirei_big_height', 703, 467); //ギャラリー正方形 縦用

アドミンバー 管理画面 お客さん

ファンクションへ

アドミンバー

//オリジナルアドミンバーメニュー
add_action('admin_bar_menu', 'customize_admin_bar_menu', 9999);

function customize_admin_bar_menu($wp_admin_bar){
    $title = sprintf(
       
        '瀬戸青年会議所'
    );
    $wp_admin_bar->add_menu(array(
        'id'    => 'bookpress-app',
        'meta'  => array(),
        'title' => $title,
        'href'  => home_url()
    )); 
	$wp_admin_bar->add_menu(array(
    'parent' => 'bookpress-app', // 親メニューのIDを指定する
    'id'     => 'bookpress-app-sub4',
    'meta'   => array(),
    'title'  => '管理画面へ',
    'href'   => home_url('/wp-admin/')
));
	$wp_admin_bar->add_menu(array(
    'parent' => 'bookpress-app', // 親メニューのIDを指定する
    'id'     => 'bookpress-app-sub',
    'meta'   => array(),
    'title'  => 'JC NEWSを書く',
    'href'   => home_url('/wp-admin/post-new.php')
));
$wp_admin_bar->add_menu(array(
    'parent' => 'bookpress-app', // 親メニューのIDを指定する
    'id'     => 'bookpress-app-sub2',
    'meta'   => array(),
    'title'  => 'ファイルをアップロード',
    'href'   => home_url('/wp-admin/post-new.php?post_type=member_only')
));

$wp_admin_bar->add_menu(array(
    'parent' => 'bookpress-app', // 親メニューのIDを指定する
    'id'     => 'bookpress-app-sub3',
    'meta'   => array(),
    'title'  => 'ログアウト',
    'href'   => wp_logout_url(home_url())
));
}




//アドミンバー内容消す
add_action('admin_bar_menu', 'customize_admin_bar_menu2', 9999); // 優先順位は大きめで!

function customize_admin_bar_menu2($wp_admin_bar){
    // Adminバー左側
    $wp_admin_bar->remove_node('wp-logo');     // 一番左のWordPressのロゴを消す。
    $wp_admin_bar->remove_node('site-name');   // 左から2番めのサイト名を消す。
    $wp_admin_bar->remove_node('new-content'); // 「+ 新規」ってメニューを消す。

    // Adminバー右側
    $wp_admin_bar->remove_node('my-account'); // アカウントのメニューを消す。
    $wp_admin_bar->remove_node('search');     // 検索のメニューを消す。
}

ダッシュボード

// ダッシュボードウィジェット非表示
function example_remove_dashboard_widgets() {
 if (!current_user_can('level_10')) { //level10以下のユーザーの場合ウィジェットをunsetする
 global $wp_meta_boxes;
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); // 現在の状況
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); // 最近のコメント
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 被リンク
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // クイック投稿
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']); // 最近の下書き
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // WordPressブログ
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); // WordPressフォーラム
 }
 }
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets');




//☆--オリジナルメニューを追加
function example_dashboard_widget_function() {
 echo '
  <div class="da d1"><a href="./post-new.php">新規 JC NEWS</a></div>
  <div class="da d1"><a href="edit.php?post_type=member_only">新規 ファイルアップロード</a></div>
 <div class="da d6"><a href="post-new.php?post_type=public_information">新規 公開情報</a></div>
 <div style="clear:both"></div>
 ';
}
function example_add_dashboard_widgets() {
 wp_add_dashboard_widget('example_dashboard_widget', '更新', 'example_dashboard_widget_function');
}
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );
//オリジナルメニューを追加--☆
/*ダッシュボードメニューcss*/
.da{
	float: left;
	padding-top: 10px;
	padding-right: 5px;
	padding-bottom: 10px;
	padding-left: 5px;
}


.da a{
	padding: 15px;
	background-color: #4091B4;
	color: #FFF;
	    -webkit-border-top-left-radius: 5px;  
    -webkit-border-top-right-radius: 5px;  
    -webkit-border-bottom-right-radius: 5px;  
    -webkit-border-bottom-left-radius: 5px;  
    -moz-border-radius-topleft: 5px;  
    -moz-border-radius-topright: 5px;  
    -moz-border-radius-bottomright: 5px;  
    -moz-border-radius-bottomleft: 5px;