Jump to content
eduardomc

Wordpress (multisite)

Recommended Posts

Prezados, mantenho (na raça) um site baseado em Wordpress com o recurso Multisite. Eu preciso exibir a quantidade de comentários de um site (2) em outro... Já procurei na internet e achei essas informações (http://www.codecheese.com/2013/11/wordpress-get-total-comment-count/) mas meus conhecimentos são bem limitados e eu nem sei por onde começar a inserir isso tudo... Vocês poderiam me ajudar? E se possível fazer o resultado disso em um shortcode para eu poder colocar onde quiser... 

Desde já agradeço

 

Get Site Total Comments

This will display total comments from current site in single installation or multi-install (multisite).


 
  1. $comments = wp_count_comments();
  2. echo 'Comments for site <br />';
  3. echo 'Comments in moderation: ' . $comments->moderated . '<br />';
  4. echo 'Comments approved: ' . $comments->approved . '<br />';
  5. echo 'Comments in Spam: ' . $comments->spam . '<br />';
  6. echo 'Comments in Trash: ' . $comments->trash . '<br />';
  7. echo 'Total Comments: ' . $comments->total_comments . '<br />';

Get Total Comments in Multisite

We can use the code above from current blog, but if we want to count the comments from other blog id (example: 2), we need to supply the table prefix for it.


 
  1. global $wpdb;
  2. $blog_prefix = $wpdb->get_blog_prefix(2);
  3. $count = $wpdb->get_results( "SELECT comment_approved, COUNT(*) AS num_comments FROM {$blog_prefix}comments GROUP BY comment_approved", ARRAY_A );

Example result using $wpdb query:

print_r( $count );
array(
    [0] => array(
        [comment_approved] => 1
        [num_comments] => 5
    )
    [1] => array(
        [comment_approved] => spam
        [num_comments] => 1
    )
    [2] => array(
        [comment_approved] => trash
        [num_comments] => 1
    )
)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By TheRonaldoStar
      Olá. eu gostaria de tirar uma dúvida que já faz exatamente 1 dia que eu estou fazendo pesquisas e nada.
      Minha dúvida é a seguinte, Estou fazendo um aplicativo de mensagem por browser se e que pode se chamar assim.
      Tipo eu tenho o loby de mensagem semelhante ao Whatsapp e quando a pessoa clica em conversas eu faço a consulta via ajax
      Nesta consulta eu só informo o meu id ou seja o id do usuário logado. e na pagina php eu faço a seguinte consulta no banco de dados:
      Procurar por todas as mensagens da tabela: privado, Nesta consulta me retorna todas as mensagens cujo meu id existe como na coluna: Para, com o status da mensagem valor 0
      Ou seja 0= Disponível e 1 seria deletada. este e o código usado:
       
      $sql = $db->prepare("SELECT * FROM privado WHERE Para = '$ID_user' AND Status = '0' ORDER BY id DESC");
      $sql->execute();
       
      Continuando;
      Após o fazer esta consulta coloquei para listar tudo com o while, colocando todos os id dos usuários em uma variável e dentro deste mesmo while eu faço
      Outra consulta por os usuários informado pela variável id da pessoa que mandou. e isso ocorre com sucesso, ou seja eu consigo fazer quase tudo que eu quero.
      Procurei pelas mensagem, pesquisei por estes usuários mostro: Nome, foto, e a mensagem; Este e o código usado:
       
      while($dados = $sql->fetch(PDO::FETCH_OBJ)){
              $ID_De = ($dados -> De);
              $U_mensagem = ($dados -> Texto);
              $sql1 = $db->prepare("SELECT * FROM usuarios WHERE id = '$ID_De' ORDER BY id DESC");
              $sql1->execute();
              
              while($dados1 = $sql1->fetch(PDO::FETCH_OBJ)){
                  $Foto = ($dados1 -> foto == "") ? "defaut.png" : $dados1 -> foto;
                  $Nome = ($dados1 -> nome);
                  echo "Nome: ".$Nome."<br>Foto: ".$Foto."<br>Mensagem: ".$U_mensagem."<br><br>";
              }
          }
       
      No final fica tudo assim:
       
      Nome: Moderador
      Foto: user_3.png
      Mensagem: Mensagem do moderador

      Nome: Ronaldo
      Foto: user_1.png
      Mensagem: Como vai você?

      Nome: Ronaldo
      Foto: user_1.png
      Mensagem: Olá
       
      Mas no final das contas eu gostaria de saber somente uma coisa para que meu projeto funcione como quero:
      Eu quero que a listagem da ultima mensagem de cada usuário não todas as mensagem daquele usuário, ou seja somente da ultima mensagem de cada um usuário
       
      "Tabela nome: usuários
      Colunas: [ id, De, Para, Texto, Status ]" 
       
      Este e o código completo da pagina:
       
      <?php
          $Hostname = "localhost";
          $Database = "servidor_app";
          $Charset = "utf8";
          $Username = "root";
          $Password = "";
          $db = new PDO('mysql:host='.$Hostname.';dbname='.$Database.';charset='.$Charset.'', $Username, $Password);
          $db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          
          $URL_ATUAL= "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
          parse_str(parse_url($URL_ATUAL, PHP_URL_QUERY), $vamos_ver);
          $ID_user = $vamos_ver['id'];
          $sql = $db->prepare("SELECT * FROM privado WHERE Para = '$ID_user' AND Status = '0' ORDER BY id DESC");
          $sql->execute();
          while($dados = $sql->fetch(PDO::FETCH_OBJ)){
              $ID_De = ($dados -> De);
              $U_mensagem = ($dados -> Texto);
              $sql1 = $db->prepare("SELECT * FROM usuarios WHERE id = '$ID_De' ORDER BY id DESC");
              $sql1->execute();
              while($dados1 = $sql1->fetch(PDO::FETCH_OBJ)){
                  $Foto = ($dados1 -> foto == "") ? "defaut.png" : $dados1 -> foto;
                  $Nome = ($dados1 -> nome);
                  echo "Nome: ".$Nome."<br>Foto: ".$Foto."<br>Mensagem: ".$U_mensagem."<br><br>";
              }
          }
      ?>
       
      Pro favor preciso de ajuda urgente.
      Atenciosamente,
      ~Ronaldo
    • By c3s1nha
      Boa tarde,
       
      Preciso restaurar a estrutura de um banco de dados (tabelas,views,procedures.. etc) em outro banco de dados que esta vazio (nao tem tabela nenhuma, banco novo), utilizo o sql server. Consigo fazer utilizando o SSMS ?
       
      Para entender melhor estou enviando uma imagem.
       
       
      O banco com todas tabelas,viwes,procedures, registros, etc..  é o Guara_ que esta no servidor   .\SQLEXPRESS   quero fazer uma copia identica dele no banco Nutri no servidor sdb.hsi.
       
      Desde ja agradeço. 

    • By Jefferson andre
      Estou com um problema no contador diario que esta incluindo todas as vezes e salvanda a data como 0000-00-00, o que pode estar errado ?
       
      <html xmlns="http://www.w3.org/1999/xhtml"> <input name="data_atual_automatica" type='text' id='data_atual_html' value='<?php echo date("Y/m/d"); ?>'> </html> <?php $data_atual = $_POST['data_atual_automatica']; //echo $data_atual; //echo $_POST['data_atual_html']; // fazendo uma conexão com o banco de dados include("conexao.php"); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$data_atual'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario (data, contador) VALUES ('$data_atual', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$data_atual'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • By Paulo Oliveira Albuquerque
      Ola pessoal
      Eu criei o meu codigo para listar os modulos de uma tabela do banco de dados
       
         ele funciona certo
       
        Só que neste código eu quero que ele me faz uma contagem do nome da tabela que onde esta os nome preciso para a listagem
       Ex:
      /// TABELA DO MODULO ///
      id      nome                            url                status      tabela    cor_bloco
      1      Nome da cidade       city.php           S            city            blue
      2      Nome da cidade2     city2.php         S           city2          blue
       
      Obs: Esta TABELA e as das cidades que quero que faz a contagem de quantos registro tem nela
       
      No php fiz assim
      <?php /* Connect To Database*/ require_once ("../conexion.php"); mysqli_set_charset($con,"utf8"); $action = (isset($_REQUEST['action'])&& $_REQUEST['action'] !=NULL)?$_REQUEST['action']:''; if($action == 'ajax'){ $query = mysqli_real_escape_string($con,(strip_tags($_REQUEST['query'], ENT_QUOTES))); $tables="modulos"; $campos="*"; $sWhere=" modulos.tabela LIKE '%".$query."%' OR modulos.nome LIKE '%".$query."%' OR modulos.id LIKE '%".$query."%'"; $sWhere.=" order by modulos.id DESC"; $tables1="modulos"; $campos1="*"; $sWhere1=" modulos.tabela"; //$sWhere1.=" order by modulos.id"; include 'pagination.php'; //include pagination file //pagination variables $page = (isset($_REQUEST['page']) && !empty($_REQUEST['page']))?$_REQUEST['page']:1; $per_page = intval($_REQUEST['per_page']); //how much records you want to show $adjacents = 10; //gap between pages after number of adjacents $offset = ($page - 1) * $per_page; //Count the total number of row in your table*/ $count_query = mysqli_query($con,"SELECT count(*) AS numrows FROM $tables where $sWhere "); if ($row= mysqli_fetch_array($count_query)){$numrows = $row['numrows'];} else {echo mysqli_error($con);} $total_pages = ceil($numrows/$per_page); //main query to fetch the data $query = mysqli_query($con,"SELECT $campos FROM $tables where $sWhere LIMIT $offset,$per_page"); //loop through fetched data if ($numrows>0){ ?> <?php //Contatar o total numeros das tabelas*/ $query = mysqli_query($con,"SELECT count(*) AS numrows FROM $sWhere1 "); if ($row= mysqli_fetch_array($query)){$numrows = $row['numrows'];} else {echo mysqli_error($con);} $contagem = ceil($numrows); //main query to fetch the data $query = mysqli_query($con,"SELECT $campos1 FROM $sWhere1"); //loop through fetched data if ($numrows>0){ ?>      
      <section class="content"> <!-- Small boxes (Stat box) --> <div class="row"> <?php $finales=0; while($modulos = mysqli_fetch_array($query)){ $id = $modulos['id']; $nome = $modulos['nome']; $url = $modulos['url']; $tabela = $modulos['tabela']; $cor_blocos = $modulos['cor_blocos']; $icone = $modulos['icone']; $status = '1'; $finales++; ?> <div class="col-lg-3 col-xs-6"> <!-- small box --> <div class="small-box bg-<?php echo ConfigPainel('cor_blocos'); ?>"> <div class="inner"> <h3><?php echo $contagem; ?></h3> <!-- AQUI É CONTADOR --> <p><?php echo $modulos['nome']; ?></p> </div> <div class="icon"> <i class="fa <?php echo $modulos['icone']; ?>"></i> </div> <a href="<?php echo $modulos['url']; ?>" class="small-box-footer">Gerenciar de Modulo <i class="fa <?php echo $modulos['icone']; ?>"></i></a> </div> </div> <!-- ./col --> <?php } } ?> <div class="col-md-12"> <div class="form-control"> <?php $inicios=$offset+1; $finales+=$inicios -1; echo "Mostrando $inicios al $finales de $numrows registros"; echo paginate( $page, $total_pages, $adjacents); ?> </div> </div> </div> <?php } } ?> </section>  
    • By yeahboy
      Quero que ao clicar em "Enviar consulta", execute um script .php que envie os dados no formulário para um .txt
      Eu mandaria pra db, mas ainda não aprendi, minha ideia com isso é apenas aprendizado em php, com testes locais.

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.