未検証:
以下のようなコードでそれらしいことができまると思います。
細かいところはよきにはからってください。
$children = get_children(array(
'post_parent' => get_the_id(),
'post_type' => 'page',
'post_status' => 'publish'
));
foreach($children as $child){
$icon = get_post_meta($child->ID, 'icon', false);
$a = get_post_meta($child->ID, 'a', false);
$b = get_post_meta($child->ID, 'b', false);
$c = get_post_meta($child->ID, 'c', false);
$d = get_post_meta($child->ID, 'd', false);
echo '<tr><td>' . $icon . $a . '</td><td>'
. '<td>' . $b . '</td>'
. '<td>' . $c . '</td></tr>';
if($d)
echo '<tr><td colspan="4">' . $d . '</td></tr>';
}
kz様
返信ありがとうございました。
早速試してみましたが、うまく情報を表示できませんでした。
htmlソースでは、下記のように表示されました。
<table>
<tr><td>ArrayArray</td><td>Array</td><td>Array</td></tr><tr><td colspan=”4″>Array</td></tr>
<tr><td>ArrayArray</td><td>Array</td><td>Array</td></tr><tr><td colspan=”4″>Array</td></tr></table>
いただいたソースは下記のようにして貼り付けてみました。
<table>
<?php
$children = get_children(array(
‘post_parent’ => get_the_id(),
‘post_type’ => ‘page’,
‘post_status’ => ‘publish’
));
foreach($children as $child){
$icon = get_post_meta($child->ID, ‘icon’, false);
$a = get_post_meta($child->ID, ‘a’, false);
$b = get_post_meta($child->ID, ‘b’, false);
$c = get_post_meta($child->ID, ‘c’, false);
$d = get_post_meta($child->ID, ‘d’, false);
?>
<?php
echo ‘<tr><td>’ . $icon . $a . ‘</td>’
. ‘<td>’ . $b . ‘</td>’
. ‘<td>’ . $c . ‘</td></tr>’;
if($d)
echo ‘<tr><td colspan=”4″>’ . $d . ‘</td></tr>’;
}
?>
</table>
お手数をお掛けしまして申し訳ありませんが
ご指導、よろしくお願いします。
kz様
もしやと思い報告させていただきますが、
今回お世話になっている親ページとは厳密には孫ページとなり
曾孫ページのカスタムフィールドのデータを孫ページに表示させたいと思っています。
孫ページの上位2層のページは、孫ページを束ねるインデックスのようなものです。
私の説明が間違っていました。
この件も表示されないことに関係しますでしょうか?
あ、
get_post_meta($child->ID, 〜, false);
の false は全部 true です。
kz様
返信が遅くなりました。申し訳ありません。
お蔭様で、無事データを表示することができました。
ありがとうございました。
ところで、今回のデータの表示ですが、データの並び順を
ページの「順序」の通りにすることはできるのでしょうか?
何度も申し訳ありませんが、よろしくお願いします。
データの並び順をページの「順序」の通りに
ページの「順序」が何を意図しているかをご説明いただくと回答がしやすいです。
get_children()で拾ってくるページの順序なら
get_posts() の order, orderby パラメータが使えるので色々お試しください。
説明が足りませんでした。失礼しました。
ページの入力画面の「属性」内に「順序」を数字で
入力するフィールドがあると思います。
この「順序」で指定した順番の通り、データを表示させたいと思っています。
get_posts() の order, orderby パラメータは関連するウェブページを閲覧しましたが
うまく反映できませんでした。見よう見まねでソースを追加したものの、間違っていたのでしょうか、
真っ白いページのみが表示されてしまいます。
get_post_meta($child->ID, 〜, true); のどこかにパラメータを挿入するのでしょうか。
私の知識が足りないばかりにご面倒をお掛けしますが、具体的にお教えいただけると助かります。
よろしくお願いします。
Orderby Parameters
・orderby=menu_order Note: Only works with Pages. !!
Order Parameters
・order=ASC – ascending order, lowest to highest value !!
$children = get_children(array(
'post_parent' => get_the_id(),
'post_type' => 'page',
'post_status' => 'publish',
'orderby' => 'menu_order',
'order' => 'ASC'
));
kz様
お蔭様で、無事思った通りにデータを表示させることができました。
何度もご指導いただき、ありがとうございました!