0

我正在尝试制作一个表格,您可以通过单击表格标题对其进行排序。我正在使用基于 Wordpress 以及 Genesis 框架和 Agentpress 主题的网站。表格数据直接取自站点的帖子,这些帖子属于自定义类型“列表”,由 Agentpress 子主题创建。使用下面的 php 模板,我创建了一个页面,该页面循环遍历所有类型列表的帖子,并根据该信息创建一个表。

add_filter( 'the_content', 'list_properties');
function list_properties() 
  $args = array(
    'orderby' => "genesis_get_custom_field( '_listing_state' )",
    'order' => 'DESC',
    'posts_per_page'=> '250', // overrides posts per page in theme settings
    'post_type' => 'listing',
  );



  $properties = new WP_Query( $args );

  if ( $properties->have_posts() ) {

    echo '<h4 style="color:#800000;text-align: center">Complete Property List</h4>';

    echo '<p style="text-align:center">A list of all our for-sale inventory. For questions or to tour' .
' a property, please give us a call at <span style="color:red">866.937.3557.</span></p>';

    echo '<p style="font-size:10px; display:inline; margin: 0 0 0 50px;">Click on the column headers to sort the table, and the listing'    . 
' address to go to the page for that listing.</p>';

    echo '<table class="sortable"><tr style="color:red"><th>Address</th><th>City</th>';

    echo '<th>State</th><th>County</th><th>Price</th><th>Type</th><th>Bedrooms</th><th>Bathrooms</th><th>Square Feet</th></tr>';

    while ( $properties->have_posts() ) {
        $properties->the_post();
        $link = get_permalink();

        echo '<tr><td><a style="color:red" href="' 
    . $link . '">' . genesis_get_custom_field( '_listing_address' ) . '</a></td>';

        echo '<td>' . genesis_get_custom_field( '_listing_city' ) . '</td>';

        echo '<td>' . genesis_get_custom_field( '_listing_state' ) . '</td>';

        echo '<td>' . genesis_get_custom_field( '_listing_county' ) . '</td>';

        echo '<td>' . genesis_get_custom_field( '_listing_price' ) . '</td>';

        echo '<td>' . genesis_get_custom_field( '_listing_type' ) . '</td>';

        echo '<td>' . genesis_get_custom_field( '_listing_bedrooms' ) . '</td>';

        echo '<td>' . genesis_get_custom_field( '_listing_bathrooms' ) . '</td>';

        echo '<td>' . genesis_get_custom_field( '_listing_sqft' ) . '</td</tr>';

    }
  echo '</table>';
  } else {
    echo 'no posts found!';
  }
  wp_reset_postdata();
}   

原谅代码质量真的很差,这是一个超级粗略的草稿

上面的所有代码都可以正常工作,并根据我的需要完美地创建表格。但是,我想让它可排序,以便您可以按地址、城市或表格上的任何其他标题进行排序。我知道 php 是一种服务器端语言,我想要检测的是客户端操作。我更喜欢只涉及 html、javascript 和 php 的答案,但我很确定这实际上是不可能的。因此,由于这些是我最熟悉的语言,并且我在没有任何 SQL 查询的情况下创建了这个表,如果使表可排序需要一些 SQL,如果可能的话,我将不胜感激一些代码片段或解释。谢谢!

4

0 回答 0