カテゴリー
WordPress

IPによって表示するディレクトリを変える

あるサイトにWordPressを入れる案件で、ダウンタイム無しで作業する必要があった。色々方法はあると思うのだけど、IPによって見る場所を変える方法で対応しました。.htaccessの上のほうに下記の記述をおこないます

RewriteEngine on

RewriteRule ^xxx/xxx/.*$ - [NC,L]//適応除外ディレクトリ

RewriteCond %{REMOTE_ADDR} !^111.111.111.62$//このIP以外だったら、
RewriteRule .* http://sample.co.jp/safe/ [R=302,L]//こっちへ飛ばす

特定のIP以外は/safe/へリダイレクト。
特定のIPから見た場合は、WordPressのindex.phpを見に行くようにしました。
WordPress化次第、上の記述をコメントアウトすれば完了です。

カテゴリー
WordPress

メニューのカレント表示

間違いあるかも。自分用メモなので取り扱い注意。

WordPressなら下記。sampleならcurrentをechoする。CSSのclassに入れればOK。

<?php if ( is_page('sample') ) { echo ' current'; } ?>

PHPなら下記なの?関数作る。あまりうまくないやり方っぽい。

/*メニューのカレント表示*/
function is_current( $uri = "" ) {
	$uri = trim( $uri, "/" );
	$request_uri = $_SERVER['REQUEST_URI'];
 
	if( $uri && strpos($request_uri."/", "/".$uri."/", 0) !== FALSE ) {
		return true;
	}
	$request_uri = trim(str_replace( "/index.php", "", $request_uri ), '/');
	if( !$uri && !$request_uri ) {
		return true;
	}
	return false;
}
 
function echo_current( $uri = "" ) {
	if(is_current( $uri )) {
		echo 'current';
	};
}

表示させたいところに下記。/sample/ならcurrent表示。

<?php echo_current("sample");?

echoする時は、エスケープすること。下は例。

echo esc_html( $str );

カテゴリー
WordPress

ユーザー名とユーザーID一覧表示

ユーザー名とユーザーID一覧を表示させたいとき。

例)page-userid.php

<?php $users = get_users( array('orderby'=>ID,'order'=>DESC) ); ?>
<div class="authors">
<?php foreach($users as $user) {
$uid = $user->ID; ?>
<div class="author-profile">
	<span class="author-thumbanil"><?php echo $uid ; ?></span>
	<span class="author-name"><?php echo $user->display_name ; ?></span>
</div>
<?php } ?>
</div>

カテゴリー
WordPress

タクソノミーのラベル名を取得

<?php $ taxonomyname = get_taxonomy($taxonomy) ->label; echo $ taxonomyname; ?>

1)get_taxonomy($taxonomy)で所属しているタクソノミー情報をゲット
2)->labelでラベル名を取得。echoで表示。

カテゴリー
WordPress

wp-login.phpにIP制限を設定するサンプル

.htacsessに下記を記述する。xmlrpc.phpへアクセスさせない記述も含まれています。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

<Files xmlrpc.php>
  Require all denied
</Files>

<Files wp-login.php>
  Require ip xxx.xxx.xxx.xx
</Files>

カテゴリー
WordPress

三度目の正直で…

register_post_typeのオプションのexclude_from_searchは、「サイト内検索からカスタム投稿タイプの投稿を除外する」という設定なので、Tureにすると、通常のループでは記事が表示されません。

カテゴリー
WordPress

PDFへの直接リンクを防ぐ

会員サイト内の資料に直接アクセスできちゃってまずいよ~って言われたので修正。

フォーラム参照

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?example.com [NC]
RewriteRule .(pdf|zip)$ - [NC,F,L]
</IfModule>

リファラーでチェック。PDFとZIPへの直接アクセスを禁止している。
作成した.htaccessをuploadフォルダへ設置して完了。

カテゴリー
WordPress

ページ別に異なるCSSを読み込む

忘れるのでメモ。

function register_style() {
    wp_register_style( 'home' , get_template_directory_uri() . '/css/home.css' );
    wp_register_style( 'contact' , get_template_directory_uri() . '/css/contact.css' );
}
    // トップページにhome.css読み込む
    if ( is_front_page() ) {
    wp_enqueue_style( 'home' );
    }
    // 固定ページ contact にcontact.cssを読み込む
    if ( is_page( 'contact' ) ) {
    wp_enqueue_style( 'contact' );
    }
}
add_action( 'wp_print_styles' , 'add_stylesheet' );

wordpressで固定ページごとにCSSを読み込ませたい
https://teratail.com/questions/78836?link=4WbEixNa

カテゴリー
WordPress

【WordPress】タクソノミータームの表示

忘れるのでメモ。見出しのタグなどに使ったり。

//所属しているターム名(カテゴリー名)を1つ表示
<?php $terms = get_the_terms($post->ID, 'taxonomy名'); foreach($terms as $term){ $term_name = $term->name; echo $term_name; break; }; ?>

//所属しているターム名(カテゴリー名)一覧を表示(リンク有)
<?php echo get_the_term_list( $post->ID, 'taxonomy名', '<div>', '区切り部分のhtml', '</div>'); ?>

//所属しているターム名(カテゴリー名)一覧を表示(リンク無)
<?php $terms = get_the_terms($post->ID, 'taxonomy名'); $t_slug=''; foreach($terms as $term){ $term_name = $term->name; $t_slug = $t_slug.$term_name.'区切り部分のhtml'; }; $t_slug = substr($t_slug, 0, -1); echo $t_slug; ?>

カテゴリー
WordPress

【WordPress】所属しているタクソノミー名表示/他

<p><?php _e( 'taxonomy-service.php' ); ?></p>//翻訳テキスト表示 テンプレート名表示

<pre><?php single_term_title(); ?></pre>//所属するターム名
<pre><?php echo $taxonomy; ?></pre>//所属するタクソノミー名
<pre><?php echo $term; ?></pre>//所属するタクソノミーターム名