「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
SearchEntriesプラグインをMT5.1xで使う場合のコアの書き換え方
SearchEntriesプラグインでは、カスタムフィールドでの並べ替えが可能です。
ただ、その際にはMovable Typeのコアの書き換えが必要になります。
先日、SearchEntriesプラグインをMovable Type 5.1xで使う場合の書き換え方法について、ご質問をいただきました。
そこで、Movable Type 5.1xでの書き換え方法を紹介します。
書き換える箇所は、「lib/MT/ObjectDriver/Driver/DBI.pm」の524行目~548行目の部分です。
以下のように書き換えます。
書き換え前
if ( $args->{sort} || $args->{direction} ) { my $order = $args->{sort} || 'id'; my $pfx = $orig_args->{alias} ? $orig_args->{alias} . '.' : ''; if ( !ref($order) ) { my $dir = $args->{direction} && $args->{direction} eq 'descend' ? 'DESC' : 'ASC'; $stmt->order( { column => $pfx . $dbd->db_column_name( $tbl, $order ), desc => $dir, } ); } else { my @order; foreach my $ord (@$order) { push @order, { column => $pfx . $dbd->db_column_name( $tbl, $ord->{column} ), desc => $ord->{desc}, }; } $stmt->order( \@order ); } }
書き換え後(赤字の部分を追加/変更)
if ( $args->{sort} || $args->{direction} ) { my $order = $args->{sort} || 'id'; my $pfx = $orig_args->{alias} ? $orig_args->{alias} . '.' : ''; my $tmp_tbl = $args->{sort_class} ? $driver->table_for($args->{sort_class}) : $tbl; if ( !ref($order) ) { my $dir = $args->{direction} && $args->{direction} eq 'descend' ? 'DESC' : 'ASC'; $stmt->order( { column => $args->{sort_alias} ? $args->{sort_alias} . '.' . $dbd->db_column_name($tmp_tbl, $order) : $pfx . $dbd->db_column_name( $tbl, $order ), desc => $dir, } ); } else { my @order; foreach my $ord (@$order) { my $tmp_tbl = $ord->{sort_class} ? $driver->table_for($ord->{sort_class}) : $tbl; push @order, { column => $ord->{sort_alias} ? $ord->{sort_alias} . '.' . $dbd->db_column_name($tmp_tbl, $ord->{column}) : $pfx . $dbd->db_column_name( $tbl, $ord->{column} ), desc => $ord->{desc}, }; } $stmt->order( \@order ); } }