【问题标题】:List custom data in Wordpress在 Wordpress 中列出自定义数据
【发布时间】:2012-10-03 19:47:10
【问题描述】:

我正在开发一个有自己的表格的插件。我需要在 Wordpress 前端显示表格中的数据(例如:类别页面)。我不需要将这个表与帖子表连接起来,我只需要显示表中的数据,并带有分页。我需要一个来自我的插件目录的单独页面/自定义模板(在 MVC 框架的上下文中讨论 - 控制器),应该在其上显示和分页此数据。

请给我一个建议,实施它的最佳做法是什么?

谢谢。

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    如果我理解您的问题,那么我认为您需要添加 template_include 挂钩以使用插件目录中的自定义模板/页面,您可以这样做

    add_filter('template_include', 'my_template', 1, 1); 
    function my_template($template) { 
        global $post; 
        if($post->post_content == '[myPluginPage]') 
            return dirname(__FILE__) . '/my_pligin_template.php'; 
            return $template; 
    }
    

    您应该将上面给出的代码粘贴到您的插件文件中,并在您的插件文件夹中创建一个名称为my_pligin_template.php 或任何您想要的文件,但在这种情况下,在第一个返回语句中您也必须更改文件名。

    现在您必须在 wordpress admin 中创建一个页面以在菜单栏中显示该页面,然后将 [myPluginPage] 粘贴为内容。注意if($post->post_content == '[myPluginPage]'),当您单击任何菜单项时,它将检查它是否是您的插件页面,如果它在内容中找到单词[myPluginPage],那么它将返回自定义模板,您将在该页面。

    现在您需要从数据库中获取数据,为此您应该在此自定义模板文件 (my_pligin_template.php) 中编写代码。为此,您可以编写

    global $wpdb;
    $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
    $limit = 10;
    $offset = ($pagenum-1) * $limit;
    $total = $wpdb->get_var( "SELECT COUNT(*) FROM yourtable" );
    $num_of_pages = ceil( $total / $limit );
    
    $qry="select * from yourtable LIMIT $offset, $limit";
    $result=$wpdb->get_results($qry);
    if($result):
        foreach($result as $row)
        {
            // code here
        }
    
        //Link for Pagination
        $page_links = paginate_links( array(
            'base' => add_query_arg( 'pagenum', '%#%' ),
            'format' => '',
            'prev_text' => __( '«', 'aag' ),
            'next_text' => __( '»', 'aag' ),
            'total' => $num_of_pages,
            'current' => $pagenum
        ) );
        if ( $page_links ) {
            echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>';
        }
    endif;
    

    【讨论】:

    • 是的,这就是我所要求的。谢谢!
    • 谢谢!这对我帮助很大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2011-12-09
    相关资源
    最近更新 更多