How to show data from database in wordpress?

2019-09-06 06:31发布

I am trying to add following code in WordPress, but I cant find the right way to do it. Please help me someone...

<?php
include("config.php");
$results = $mysqli->query("SELECT COUNT(*) as t_records FROM wp_posts");
$total_records = $results->fetch_object();
$total_groups = ceil($total_records->t_records/$items_per_group);
$results->close(); 
?>

It's work great nice if I use it outside of WordPress. But I don't know hot to implement this in my WordPress index.php

There is a lot of code in my theme so I can't give you exact code of the index page. But here is the main index.php file code

<?php

$is_filterable_index = is_home() && x_get_option( 'x_ethos_filterable_index_enable', '' ) == '1';

?>

<?php get_header(); ?>

  <div class="x-container-fluid max width main">

    <?php x_get_view( 'ethos', '_post', 'slider' ); ?>

    <div class="offset cf">
      <div class="<?php x_main_content_class(); ?>" role="main">

        <?php if ( $is_filterable_index ) : ?>
          <?php x_get_view( 'ethos', '_index' ); ?>
        <?php else : ?>
          <?php x_get_view( 'global', '_index' ); ?>          
        <?php endif; ?>
<?php /*?>         
<?php */?>      </div>
      <?php get_sidebar(); ?>

    </div>       
  </div>  

<div id="content"></div>


<?php get_footer(); ?>

5条回答
Rolldiameter
2楼-- · 2019-09-06 06:46

Use global Wordpress db object

global $wpdb;

$total_groups = $wpdb->get_var("SELECT COUNT(*) as t_records FROM wp_posts");
查看更多
老娘就宠你
3楼-- · 2019-09-06 06:56

WordPress defines a class called wpdb, which contains a set of functions used to interact with a database.

global $wpdb; //global connection object 
$results = $wpdb->get_var( "SELECT COUNT(*) as t_records FROM wp_posts" ); // The get_var function returns a single variable from the database
$total_groups = ceil($results->t_records/$items_per_group);

check

查看更多
做个烂人
4楼-- · 2019-09-06 07:00

You should use the Wordpress db connection. Try this simple code and adapt it for your needs.

global $wpdb;
$query = "SELECT COUNT(*) as t_records FROM wp_posts";
$result = $wpdb->get_results($query);
var_dump($result);

http://codex.wordpress.org/Class_Reference/wpdb

查看更多
时光不老,我们不散
5楼-- · 2019-09-06 07:01

Use $wpdb

<?php
global $wpdb;
$total_records = $wpdb->get_var("SELECT COUNT(*) as t_records FROM $wpdb->posts");
$total_groups = ceil($total_records/$items_per_group);
?>

There are various methods depending on what you want to do with results (if there are several rows or columns, for example, you wouldn't use get_var)

I used $wpdb->posts instead of wp_posts in case someone changes the table prefix (eg in wp-config.php).

查看更多
何必那么认真
6楼-- · 2019-09-06 07:06

The right way to do this would be by using wordpress post meta.Post meta's are built exactly for this kind of stuff. All validation and security features are taken care of by these functions, so you dont have to worry about anything. All you have to do is

GETTING VALUES

<?php $meta_values = get_post_meta( $post_id, $key, $single ); ?>

CREATING / UPDATING VALUES

<?php update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ?>

DELETING VALUES

 <?php delete_post_meta($post_id, $meta_key, $meta_value); ?> 

Similarly you have meta values functions for users as well. Checkout the codex for further info,

查看更多
登录 后发表回答