0

ワードプレスで自分のウェブサイトのフッターにウェブサイトのリンクを表示したい。すべてのページとそのサブページを 1 つの深さで取得したい。

次に、合計8ページがある場合のように、それらを3列に表示したい場合、これらは1番目-2番目-3番目の列に3-3-2で表示する必要があります。ワードプレス初心者。

どんな体でも助けてください

私はこれを試しましたが、3-3-2でそれらを整列させる方法がわかりません

     <?php
  $counter = 0;
     $parent_pages = $wpdb->get_results("SELECT *  FROM $wpdb->posts WHERE post_parent = '0' AND ID <> 2 AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
  <?php if ( $parent_pages ) : foreach ( $parent_pages as $pageParent ) : setup_postdata( $pageParent ); ?>
  <?php $counter++; ?>
    <div class="linkSection">
      <ul>
       <li><a href="<?php echo  get_permalink($pageParent->ID); ?>"><?php echo $pageParent->post_title; ?></a></a> </li>
       <?php  
          $child_pages = $wpdb->get_results("SELECT *  FROM $wpdb->posts WHERE post_parent = '".$pageParent->ID."' AND ID <> 2 AND post_type = 'page' 
          ORDER BY menu_order", 'OBJECT'); ?>
         <?php if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild ); ?>
          <li><a href="<?php echo  get_permalink($pageChild->ID); ?>"><?php echo $pageChild->post_title; ?></a></a> </li>
         <?php endforeach; endif; ?>



      </ul>
  </div>
  <?php endforeach; endif; ?>
4

1 に答える 1

0
$counter = 0;
$cnt = 0;
$parent_pages = $wpdb->get_results("SELECT *  FROM $wpdb->posts WHERE post_parent = '0' AND ID <> 2 AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
<?php if ( $parent_pages ) : foreach ( $parent_pages as $pageParent ) : setup_postdata( $pageParent ); ?>
<?php $counter++; ?>
<div class="linkSection">
    <ul>
        <li><a href="<?php echo  get_permalink($pageParent->ID); ?>"><?php echo $pageParent->post_title; ?></a></a> </li>
            <?php  
            $child_pages = $wpdb->get_results("
                SELECT *  
                FROM $wpdb->posts 
                WHERE post_parent = '".$pageParent->ID."' 
                      AND ID <> 2 
                      AND post_type = 'page' 
                ORDER BY menu_order", 'OBJECT'); 

                // define prefix and postdix for columns (3 in a row display)
                $pre = '<div class="row_3">';
                $pos = '</div>';

                if ( $child_pages )
                {
                    foreach ( $child_pages as $pageChild ) 
                    {
                        setup_postdata( $pageChild ); 
                        echo (($cnt%3==0 || $cnt==0) ? $pre:'').
                              '<li>
                                <a href=".'get_permalink($pageChild->ID).'">'.$pageChild->post_title.'</a>
                              </li>'
                            .(($cnt%3==0 || $cnt==0) ? $pos:'');
                        $cnt++;
                    }
                    $cnt = 0;
                }
            ?>
    </ul>
</div>
<?php endforeach; endif; ?>

それで、私は何をしましたか?まず、コードを再フォーマットします。はい、WPがそのスタイルを使用していることは知っていますが、私にとっては読みにくいです。リンクのリストに prefix\postfix を追加しました。そしてインループカウンター。

仕組み: ループでは、すべての反復を でカウントします$cnt++;。すべての印刷で、それが 3 行目かどうかを確認し、そうでない場合は行に接頭辞と接尾辞を追加します。

これで、「row_3」の css スタイルを調整して、3 行表示にすることができます。

于 2012-09-06T21:13:38.327 に答える