先日、4.9のベータ版の発表がありました。
WordPress 4.9では、カスタマイザーの下書き、予約機能が追加される模様です。
例えば、日時を指定して、テキストウィジェット等で特別なメッセージを表示するといった作業が可能になりそうです。
予定している変更を、プリビューリンクで複数人で共有する事も出来そうなので、変更の承認作業が必要な場合などに便利そうです。
カスタマイザーの設定は、カスタム投稿タイプ customize_changeset に保存されます。
なので、一般の投稿を取得するような形で、カスタマイザーの設定を取得する事も可能です。
$args= array( 'posts_per_page' => -1, 'orderby'=> 'date', 'order'=> 'DESC', 'post_type' => 'customize_changeset', 'post_status' => 'publish', 'suppress_filters'=> true ); $posts_array= get_posts( $args );
保存されるデータは、例えばテキストウィジェットのコンテンツは、base64_encodeされて保存されていますので、以下のように取得することが出来ます。
$data= 'YTo0OntzOjU6InRpdGxlIjtzOjU6ImhlbGxvIjtzOjQ6InRleHQiO3M6MjY6ImNoYW5nZSBjb250ZW50cw0KDQpjaGFuZ2VzIjtzOjY6ImZpbHRlciI7YjoxO3M6NjoidmlzdWFsIjtiOjE7fQ=='; $serialized_data= base64_decode( $data ); var_dump( unserialize( $serialized_data ) );
結果
array(4) { ["title"]=> string(5) "hello" ["text"]=> string(26) "change contents changes" ["filter"]=> bool(true) ["visual"]=> bool(true) }
また、必要によっては、リビジョンを追加する事も可能です。
function my_post_type_object() { add_post_type_support( 'customize_changeset', 'revisions' ); } add_action( 'init', 'my_post_type_object', 100 );
関連
ウィジェットの期間を指定して、表示非表示設定を追加するプラグイン