WordPressのキーワード・タクソノミー(セレクト・チェックボックス)の複合検索

WordPressのキーワード・タクソノミー(セレクト・チェックボックス)の複合検索メモ


<form method="get" action="<?php echo esc_url(home_url('/'));?>" name="worksearch">
<input type="text" name="s" id="s" value="<?php echo get_search_query(); ?>" placeholder="キーワード">
<?php
//カスタム投稿タイプの一覧を取得
$args = array(
'public' => true,
'_builtin' => false
);
$post_types = get_post_types( $args );
?>

<!--
<?php if(count($post_types) != 0):?>
<select name="post_type">
<?php foreach ( $post_types as $post_type ) : ?>
<option value="<?php echo $post_type; ?>"><?php echo esc_html( get_post_type_object( $post_type )->label ); ?></option>
<?php endforeach;?>
</select>
<?php endif; ?>
-->

<select name="post_type" style="display: none;">
<option value="work" selected>求人情報</option>
</select>

<?php
$selected = get_query_var("work_area",0);
$args = array(
'show_option_all' => '勤務地を選ぶ',
'taxonomy' => 'work_area',
'name' => 'work_area',
'value_field' => 'slug',
'hide_empty' => false,
'hierarchical'=> true,
'selected' => $selected
);
wp_dropdown_categories($args);
?>

<?php
$selected = get_query_var("work_occupation",0);
$args = array(
'show_option_all' => '職種を選ぶ',
'taxonomy' => 'work_occupation',
'name' => 'work_occupation',
'value_field' => 'slug',
'hide_empty' => false,
'selected' => $selected
);
wp_dropdown_categories($args);
?>

<?php
$selected = get_query_var("work_status",0);
$args = array(
'show_option_all' => '雇用形態を選ぶ',
'taxonomy' => 'work_status',
'name' => 'work_status',
'value_field' => 'slug',
'hide_empty' => false,
'selected' => $selected
);
wp_dropdown_categories($args);
?>

<?php
/*
$selected = get_query_var("work_commitment",0);
$args = array(
'descendants_and_self' => 0,
'selected_cats' => false,
'popular_cats' => false,
'walker' => null,
'taxonomy' => 'work_commitment',
'checked_ontop' => true
);
wp_terms_checklist($args);
*/
?>

<ul>
<?php
$terms = get_terms('work_commitment','hide_empty=0');
foreach ( $terms as $term ) :
?>
<li>
<label>
<input type="checkbox" name="work_commitment" value="<?php echo $term->slug; ?>" id="<?php echo $term->term_id;; ?>"><?php echo $term->name; ?>
</label>
</li>
<?php endforeach; ?>
</ul>

<input type="submit" value="検索">
</form>

ワードプレス(WordPress)のマルウェア(Malware)への対応

既に被害に合っていいる場合

FTPおよびサーバー関連、WordPress等のパスワードを全て変える。
また、改ざんされたファイルを全てチェック、削除する。

ログインユーザー名が表示されるのを防ぐ

http://******.***/?author=1のように、自サイトのURLに/?author=1を追記してブラウザで表示し、管理者権限を持つユーザー名が表示される場合、これを防ぐためにauthor.phpの内容を下記にする。

 <?php wp_redirect(home_url()); exit(); ?> 

 

ログイン保護と不正アクセス対策

SiteGuard WP Pluginというプラグインを導入する。
更新通知がうるさい場合は無効にする。

改ざんと不正ファイルのチェック

Wordfence Security – Firewall & Malware Scanというプラグインを導入

海外のIPアドレスを拒否する

.htaccessで海外からのアクセスを拒否する

Webデザインの横幅例(8の倍数)

Webデザインの横幅例(8の倍数)は主に下記から選ぶ
960 1040 1120 1200 1280

動画を変換するフリーソフト Moo0 動画変換器

Webで動画を公開するときに、ブラウザに応じて様々な形式のものが必要となる。

MP4やwebm、ogvなどの形式にも変換が可能で、シンプルな操作。

ダウンロードはこちら
http://jpn.moo0.com/?top=http://jpn.moo0.com/software/VideoConverter/

?author=1でユーザー名がばれるのを防ぐ

WordPressでは、htttp://ドメイン?author=1でユーザー名がばれてしまう。
そのため、下記内容のauthor.phpテンプレートをアップすることで防ぐ。

<?php
    wp_redirect(home_url());
    exit();

IE8のpng透過の際、黒くなる場合の対処

透過対象に背景色を指定してあげることで解消

img{
	background: #FFF; /*背景色を指定*/
}

ページを読み込んでからアンカー移動

WordPressの記事内容を文字数を制限して表示

WordPressで記事の内容を表示させたい時は
記事内容表示テンプレートタグ

<?php the_content(); ?>

で表示されます。 これを文字数を制限するには

<?php echo mb_substr(strip_tags($post-> post_content),0,200); ?>

更に制限した記事の後ろに ・・・を追加

<?php echo mb_substr(strip_tags($post-> post_content),0,200).'...'; ?>

WordPressでカスタムタクソノミー一覧を表示する

WordPressでカスタムタクソノミー一覧を表示する場合は、
以下のコードを使用すると良い。

<?php
$args = array(
	'numberposts' => -1,			//表示(取得)する記事の数 ※-1で全件表示
	'post_type' => 'shop',		//投稿タイプの指定
	'taxonomy' => 'area',			//タクソノミー名を指定
	'term' => 'kyubo',				//タームを指定
	'orderby' => 'date',			//ソート対象を指定
	'order' => 'DESC'					//ソート順を示すASCかDESC(省略時はDESC)
);
$customPosts = get_posts($args);
if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
?>
<div><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
<?php endforeach; ?>
<?php else : //記事が無い場合 ?>
<div><p>記事はまだありません。</p></div>
<?php
endif;
wp_reset_postdata(); //クエリのリセット
?>

証明書のインストールボタンが表示されない

証明書をインストールしたいけど、そのボタンが表示されないときの対応メモ。
ツール>インターネットオプション>セキュリティ
信頼済みサイトを選択
サイトをクリック
このwebサイトをゾーンに追加する
ブラウザを開きなおせば、証明書のインストールボタンは表示される。

【WordPress】アーカイブページで現在のカテゴリ・タグの情報を簡単に取得する方法

1. 以下の関数をそのままfunctions.php内の最下部あたりに貼り付けます。

/*
	アーカイブページで現在のカテゴリー・タグ・タームを取得する
*/
function get_current_term(){

	$id;
	$tax_slug;

	if(is_category()){
		$tax_slug = "category";
		$id = get_query_var('cat');	
	}else if(is_tag()){
		$tax_slug = "post_tag";
		$id = get_query_var('tag_id');	
	}else if(is_tax()){
		$tax_slug = get_query_var('taxonomy');	
		$term_slug = get_query_var('term');	
		$term = get_term_by("slug",$term_slug,$tax_slug);
		$id = $term->term_id;
	}

	return get_term($id,$tax_slug);
}

2. あとはアーカイブ(category.php、tag.phpなど)テンプレートの任意の場所に以下のソースコードを記述するだけ!

//カテゴリ・タグ・カスタムタクソノミー オブジェクトを取得
$term = get_current_term(); 

//以下は必要に応じて記述
echo $term->name; //名前を表示
echo $term->slug; //スラッグを表示
echo $term->description; //説明文を表示
echo $term->count; //投稿数を表示

地味な関数ですが今まではアーカイブの種類ごとに記述を変更する必要がありましたが、この関数で各アーカイブ共通の記述で情報が取得できるようになるので重宝するかと思います。
※この関数は投稿ページ(single.php)では使用できません。投稿ページではget_the_category()やget_term()をお使いください。

WordPressに管理画面固定ページ一覧でスラッグを表示させる方法

WordPressに管理画面固定ページ一覧でスラッグを表示させる方法は以下をfunctions.phpに記述する。

function add_page_columns_name($columns) {
 $columns['slug'] = "スラッグ";
 return $columns;
}
function add_page_column($column_name, $post_id) {
 if( $column_name == 'slug' ) {
 $post = get_post($post_id);
 $slug = $post->post_name;
 echo attribute_escape($slug);
 }
}
add_filter( 'manage_pages_columns', 'add_page_columns_name');
add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2);

Jqueryを使ったタブ

Jqueryをつかったタブは下記の様にする
参考:http://5am.jp/jquery/jquery_ui_tabs/

<head>
<!-- jQuery -->
	<script type="text/javascript" src="/jquery-1.####.min.js"></script>

<!-- ui tabs.js -->
	<script type="text/javascript" src="/ui.core.js"></script>
	<script type="text/javascript" src="/ui.tabs.js"></script>
	<link href="/ui.tabs.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">
	$(function() {
		$('#ui-tab > ul').tabs({ fx: { opacity: 'toggle', duration: 'normal'  } });
	});
</script>

</head>
<div id="ui-tab">
	<ul>
		<li><a href="#fragment-1"><span>タブ1</span></a></li>
		<li><a href="#fragment-2"><span>タブ2</span></a></li>
		<li><a href="#fragment-3"><span>タブ3</span></a></li>
	</ul>
	
	<div id="fragment-1">
		<p>タブ1の内容</p>
	</div>
	
	<div id="fragment-2">
		<p>タブ2の内容</p>
	</div>
	
	<div id="fragment-3">
		<p>タブ3の内容</p>
	</div>

</div>

single.phpでthe_content()が表示されない解決法

オリジナルテーマを作成時に single.php で the_content() が反映されない。
は表示されるのに、が表示されないのです。

その時は、the_content()のかわりに

<?php
$this_content= wpautop($post->post_content);
echo $this_content;
?>

と記載

wordpressでAJAXで次ページを読み込む「jQuery.autopager」

まずは、jQuery.autopagerをダウンロード。

基本的には

<script type="text/JavaScript">
$(function(){
	$.autopager({
		content	: '.content',	// ロードしたいコンテンツ部分のセレクタ 
		link	: '#next'	// 次ページへのリンクのセレクタ
	});
});
</script>

ボタンで読み込むには

<script type="text/JavaScript">
$(function(){
	$.autopager({
		content	: '.content',	// ロードしたいコンテンツ部分のセレクタ 
		link	: '#next',	// 次ページへのリンクのセレクタ
		autoLoad: false,	// スクロールで自動読込みするどうか
		load	: function(){	// 読み込み完了後に発生するイベント
			// "this"は読み込んだコンテンツ要素を指す
			$(this).before('<hr/>'); // 左記は例(読み込んだヤツの前に区切り線を追加))
		}
	});
	$('#next').click(function(){	// 次ページへのリンクボタンが押されたら
		$.autopager('load');	// loadしやがれぃ!
		return false;
	});
});
</script>

さらに、最後読み込んだ後ボタンを消すにはload部分を下記に変える

load: function(current, next){
if( current.page >= max_num_pages; ?> ){
$(‘#next’).hide();
}
}

SNSの設置方法まとめ

SNSの設置方法まとめは以下を参考
https://syncer.jp/how-to-setting-share-button

WordPressのシングルページで前後の記事のリンクを表示方法

WordPressのシングルページで前後の記事のリンクを表示方法は以下

    <div class="pagination_box">
      <ul>
<?php $nextpost = get_adjacent_post(false, '', false); if ($nextpost) : ?>
        <li class="fL"><a href="<?php echo get_permalink($nextpost->ID); ?>"><img src="<?php bloginfo('template_directory'); ?>/images/prev_btn.png" alt="prev"></a></li>
<?php else: ?>
        <li class="fL"><img src="<?php bloginfo('template_directory'); ?>/images/prev_btn_none.png" alt="prev"></li>
<?php endif; ?>
        <li class="fL"><img src="<?php bloginfo('template_directory'); ?>/images/pagination_separator.png" alt="separator"></li>
<?php $prevpost = get_adjacent_post(false, '', true); if ($prevpost) : ?>
        <li class="fL"><a href="<?php echo get_permalink($prevpost->ID); ?>"><img src="<?php bloginfo('template_directory'); ?>/images/next_btn.png" alt="prev"></a></li>
<?php endif; ?>
      </ul>
      <p><a href="<?php echo esc_url( home_url( '/' ) ); ?>radio/">VIEW ALL</a></p>
    </div>

Advanced Custom Fieldsで他のページのフィールドを値に格納する方法

Advanced Custom Fieldsで他のページのフィールドを値に格納する方法は以下

$food01image = get_field('food01image', 22, true);

マウスオーバー時に透過するCSS

a img:hover {
	filter: alpha(opacity=70);
	-moz-opacity:0.70;
	opacity:0.70;
 	}


a .nonHover:hover {
	filter: alpha(opacity=100);
	-moz-opacity:1.00;
	opacity:1.00;
 	}

IEでinputに背景で画像を表示させるとき

IEでinputに背景で画像を表示させるとき、

text-indent: -9999px

と指定すると、IEの7や8で画像がどこかへいってします。
その際は、

display: block;
border-width: 0px;

を指定すると良い。

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress