WordPress Lab

「ギャラリー機能」で投稿した画像を(フルサイズ)で再取得する方法

2018年5月15日 火曜日

WordPressの「ギャラリー機能」で投稿したギャラリーをそのまんま、旧サイトからはエクスポート&インポートで継承しない新しいサイトのページに移設する場合とか、困りますよね。
管理画面のギャラリーでページに添付されてる画像を検索で全部一覧にしてダウンロードできるとかならよいのですが、現行デフォルトでは探しきれないのが難点です。
アップする前に命名に約束事をしておけばいいのですが、投稿者がそのあたりには詳しくないクライアントさんならどうしようもないし。

 

 

でも、ともかくはそのページに表示されているギャラリーの「フルサイズ」の画像を取得できればよいのなら、古典的な裏技ですが方法はあります。

 

「ギャラリーを編集」で「ギャラリーの設定」の「サイズ」を

 

 

「フルサイズ」に切り替えて、

 

 

一時的に公開して、

 

 

オモテのページでWebページを保存(Windowsの場合「名前をつけてページを保存」)すればよいのです。

 

 

不要なファイルもいっしょに保存されますけど、ここからフルサイズの画像を抽出すればよいのです。

 

参考サイト:
How to Export/Import WordPress Galleries | Moss Web Works
http://www.mosswebworks.com/how-to-exportimport-wordpress-galleries/

カスタムフィールドの「日」の値が早い順でさらに「時間」の値が早い順に並べて出力するWP Query

2018年3月1日 木曜日

イベント開催スケジュールを開催日の早い順でかつ同じ日で時間の早いイベント順に並べて出力する必要があったので、下記のようなWP Queryを書いて可能にしました。

 10,

        'meta_query' => array(
            'customfield_01' => array(
                'key' => 'start_date', //「日」のフィールド名
            ),
            'customfield_02' => array(
                'key' => 'start_time', //「時間」のフィールド名
            )
        ),
        'orderby' => array(
            'customfield_01' => 'ASC',
            'customfield_02' => 'ASC'
        )
    );

$the_query  = new WP_Query( $args );// ループ

if ( $the_query->have_posts() ) :

while ( $the_query->have_posts() ) : $the_query->the_post();


endwhile;
endif;
// 投稿データをリセット
wp_reset_postdata();
?>

(参考)
WP_Query get_posts 複数のカスタムフィールドの値で順序制御
Order by multiple meta keys in WP Query

ユーザーの権限は直接取得ができない

2017年6月14日 水曜日

投稿者ユーザーを登録するときに同時にカテゴリーや固定ページを立てるような仕組みを作っていたのですが
どうしても上手くいかない。

$user_info = get_userdata($user_id);
if ( $user_info->roles == "author" ){
 ・・・
 }

拙い英語力を頼りにネットで探しまくってるとユーザーの権限は直接取得ができないとのこと。
いったん取得してから、次のように書くとよいらしい。

$user_info = get_userdata($user_id);
$user_roles = $user_info->roles;
if (in_array("author", $user_roles)){
 ・・・
 }

ユーザーの権限が直接取得ができない、なんて何見たらすぐわかるやろ…
試みた者の経験しかないのやろか…

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

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;
}; 
?>
ページトップへ