Interferencia de códigos de WordPress

2 minutos de lectura

avatar de usuario del programador
programador

En mi sitio, tengo la intención de mostrar el número total de publicaciones y comentarios en el sitio, así como el número total de compras realizadas desde mi sitio. Los códigos que escribí son los siguientes:

//copy to functions.php

// Total Comment 
function site_total_comment_count() {
$num_comm = get_comment_count();
$num_comm = $num_comm['total_comments'];
echo $num_comm  ;}
add_shortcode('total_comment_count', 'site_total_comment_count');




// Total Completed Orders
function total_completed_Orders() {
$query = new WC_Order_Query( array(
    'limit' => 99999,
    'status'        => array( 'completed' ),
    'return' => 'ids',
) );
$orders = $query->get_orders();

return count( $orders ); }






// Copy to the desired page

<h2> All Orders:
<?php echo total_completed_Orders(); ?>
</h2>


<h2> All Comments:
<?php echo site_total_comment_count(); ?>
</h2>


<h2> All Posts:
<?php
    echo $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type="post" AND post_status="publish"");
    ?>
</h2>

Estos códigos funcionan bien individualmente, pero cuando pongo los tres en la página de destino, las estadísticas se muestran mal.

¿Puede escribirme un código que muestre las estadísticas correctas de estos tres elementos de mi sitio?

  • Este código no tiene mucho sentido. Tiene funciones, pero no las está llamando en ninguna parte. Es mejor poner estas funciones en functions.php y luego llamarlos en su plantilla. Pero KIKO señaló que estos están un poco incompletos. A return no imprimirá nada en el navegador. Y su función de comentarios tiene un echopero no estás llamando a la función. Editar su edición de código lo empeoró un poco – site_total_comment_count() ya echoes. No es necesario repetirlo cuando lo llame.

    – desinfor

    14 de noviembre a las 18:27


Puedes crear un código abreviado personalizado.

Pruebe esto en su archivo functions.php:

add_shortcode('custom_shortcode', 'kb_get_details');
function kb_get_details()
{
    //For total post.
    global $wpdb;
    $total_post = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type="post" AND post_status="publish"");

    //For total comments.
    $num_comm  = get_comment_count();
    $total_cmt = $num_comm['total_comments'];

    //For total orders.
    $query = new WC_Order_Query(array(
        'limit'  => 99999,
        'status' => array('completed'),
        'return' => 'ids',
    ));
    $orders       = $query->get_orders();
    $total_orders = count($orders);

    ?>
    <h2>All Posts   : <?php esc_html_e($total_post); ?></h2>
    <h2>All Comments: <?php esc_html_e($total_cmt); ?></h2>
    <h2>All Orders  : <?php esc_html_e($total_orders); ?></h2>
    <?php
}

Después de eso, este shortcode se puede agregar directamente a su página de destino desde el backend. También puede agregarlo a cualquier plantilla personalizada mediante el uso de do_shortcode('[custom_shortcode]');

¿Ha sido útil esta solución?