tips

投稿者ユーザー登録時に自動でユーザー専用の固定ページをつくる

2017年5月8日 月曜日

(条件)
固定ページのスラッグはinfo-(ユーザー名)で、user-info_template.phpというページテンプレートを使う。
ページタイトルは「名」。
functions.php

function create_user_page ( $user_id ) {
	$user_info = get_userdata($user_id);
	$user_name = $user_info->user_login;

    $new_page = array(
                'post_type' => 'page',
                'post_title' => $user_info->first_name,
                'post_name' => 'info-' . $user_name,
                'post_status' => 'publish',
                'post_author' => $user_id,
		'page_template' => 'user-info_template.php'
    );
    
	wp_insert_post($new_page);

}
add_action('user_register', 'create_user_page' );

ユーザーにこのページだけを編集させる制限などはUser Roll Editorなどで設定、紐付けしてください。

過日の投稿(「投稿者ユーザー登録時にユーザー名をスラッグでカテゴリーをつくる」)のコードとまとめて使うと便利です。

複数のカテゴリーに属している記事の特定の親の子カテゴリー名を表示する

2017年4月17日 月曜日

複数のカテゴリーに属している記事の特定の親の子カテゴリー名を表示する
※ ただし1つの親に対して1つの子であること

<?php
$categorys = get_the_category( $post_id ); 
foreach($categorys as $category){
if($category->parent==特定の親カテゴリーID):
echo $category->name;
endif;
}; 
?>

投稿者ユーザー登録時にユーザー名をスラッグでカテゴリーをつくる

2017年4月7日 金曜日

(条件)
ユーザー名をカテゴリースラッグにする。
カテゴリー名は、ユーザー登録時の「名」。
functions.php

function create_category( $user_id ) {
    $user_info = get_userdata($user_id);
    $user_name = $user_info->user_login;

    $my_cat = array(
        'cat_name' => $user_info->first_name,
        'category_nicename' => $user_name,
        'category_parent' => ''
    );
     wp_insert_category( $my_cat );
    
    $cat_id = get_cat_ID( $user_id );
    wp_set_post_categories( $post->ID, array( $cat_id ), true );

}
add_action('user_register', 'create_category' );

ユーザー登録と同時にユーザー名のカテゴリーが生成されますが、ログインユーザーがそのカテゴリーでしか投稿できないというような仕組みはAuthor Category等のプラグインで関連付けしてください。

WordPressの更新を反映させたい静的htmlのほうが別階層にあるとき、どうするの?

2016年8月10日 水曜日

実際、クライアントさまの要望は個々にさまざま十人十色なので、WordPressが全盛だからといって、とくにトップページやカテゴリーのインデックス、固定ページは内容、デザイン、構成が複雑になるので、テンプレートとしてこさえるより、静的htmlでガッシリつくるほうがFTPも使える制作者サイドにすれば作りやすいし、メンテもしやすい。

でも、新着記事やらアイキャッチやら、WordPressの固有の機能をそれらに求められることは免れない。

<?php require('./wp-blog-header.php'); ?>

やら

<?php require('./wp-blog-header.php'); ?>

を静的htmlの最初の行に書いて、

.htaccessで、html上でphpが使える環境に整えればよいという情報が多いが、これはドメイン直下などのトップページでしか使えない。

おしえていただいたところによると、推奨されるのは以下の形式で

<?php require_once( dirname( __FILE__ ) . '/wp-load.php' ); ?>

カテゴリーインデックスなど、静的htmlがWordPressと異なる階層にある場合は

<?php require_once( dirname(dirname( __FILE__ )) . '/wp-load.php' ); ?>

など、階層数により

dirname(dirname(dirname( __FILE__ ))) と、dirnameを重ねて調整すればよいらしい。

(参考) wordpress関数を外から使うにはwp_load.phpを読み込む | hellooooworld.com

Advanced Custum Fieldsで日付は「デイトピッカー」時刻は「Date and Time Picker(プラグインを追加)」を使った時の出力

2015年11月16日 月曜日

Advanced Custum Fieldsで日付は「デイトピッカー」時刻は「Date and Time Picker(プラグインを追加)」を使った時の出力

” XXXX年XX月XX日 XX:XX ~ XX:XX ” 時刻は24時間制で表示する場合。

■管理画面
「Time Format」はHH:mmに記載変更

■テンプレート

<?php $week = array("日", "月", "火", "水", "木", "金", "土"); ?>
<?php $date = date_create(''.get_field('held_date').''); echo date_format($date,'Y年m月d日') . "(" . $week[(int)date_format($date,'w')] . ")" ; ?>
<?php $time = date_create(''.get_field('event_open').''); echo date_format($time,'H:i'); ?> ~ <?php $time = date_create(''.get_field('event_close').''); echo date_format($time,'H:i'); ?>

 

ページトップへ