Suporte » Desenvolvendo com WordPress » Mobile WP Não exibe conteúdo

  • Resolvido Guilherme Velloso

    (@guilherme-velloso)


    Boa tarde galerinha, como vão todos?!

    Estou criando uma versão mobile seguindo um tutorial onde você mesmo criar um plugin que escolhe um segundo tema quando é acessado por smartphone.
    Funciona perfeitamente tirando um probleminha…ele só não está exibindo os textos das paginas e dos posts. A parte que seria do the_content();

    Do resto funciona perfeitamente…ele exibe os títulos das páginas, menu, author, data, hora, thumbs e etc…só o conteúdo que deveria ser do the_content(); mesmo que não aprece.

    Já tentei usar os arquivos do próprio tutorial e continua com o mesmo problema..rs
    Alguém ai sabe o que pode ser??

    Fico aguardando um help!
    Vlw galerinha.

    Ps. Criei o tópico porque não encontrei problema semelhante em lugar algum..rs

Visualizando 15 respostas - 1 até 15 (de um total de 16)
  • Uma outra coisa que é muito estranha é que se eu escolher o theme mobile como padrão ele exibe os textos normalmente no pc…só no mobile mesmo que da esse probleminha…rs

    Guilherme,

    posta aqui a parte do código que está dando problema, senão não tem jeito de a gente ajudar.

    OPa…demoro, posto sim Ricardo…vlw

    Header.php

    <?php
    echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
    <!DOCTYPE html PUBLIC '-//WAPFORUM//DTD XHTML Mobile 1.0//EN'
     'http://www.wapforum.org/DTD/xhtml-mobile10.dtd'>
    <html xmlns='http://www.w3.org/1999/xhtml'>
      <head>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
        <title><?php bloginfo('name'); wp_title('|'); ?></title>
        <link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" media="screen" type="text/css" />
      	<?php wp_head(); ?>
      </head>
      <body>
        <div id='header'>
          <h1>
            <a href="<?php print home_url('/'); ?>" rel="home">
              <?php bloginfo('name'); ?>
            </a>
          </h1>
          <?php bloginfo('description'); ?>
        </div>
    
        <?php
          $menu = wp_nav_menu('depth=1&echo=0');
          $menu = preg_replace('/<\/?ul>/', '', $menu);
          $menu = preg_replace('/(<\/?)li/', '$1span', $menu);
          print $menu;
        ?>
    
        <div id='main'>

    Page.php

    <?php get_header(); ?>
    
    <?php the_post(); ?>
    
    <div class='post'>
    
      <div class='header'>
        <?php the_post_thumbnail(array(32, 32), 'class=thumbnail'); ?>
        <h3><?php the_title(); ?></h3>
      </div>
    
      <div class='content'>
        <?php the_content(); ?>
      </div>
    
    </div>
    
    <?php get_footer(); ?>

    Não sei se só isso da pra saber mas se precisar de mais algum código é só me gritar.

    E ai galera, ninguém pra dar um help?

    Posso estar errado mas pra mim não faz muito sentido esse erro…rs
    Como não manjo tanto de programação não sei mais o que fazer, já procurei em todo lugar mas não encontro ninguém com problema similar..rs

    Fico no aguardo.
    Abraço

    Cara, desculpa a demora…

    essa parte tá rolando normal? Exibindo o thumnail e tudo?

    <div class='header'>
        <?php the_post_thumbnail(array(32, 32), 'class=thumbnail'); ?>
        <h3><?php the_title(); ?></h3>
      </div>

    não sei bem o que pode estar acontecendo não, mas você pode tentar algo tipo

    <div class='content'>
        <?php echo get_the_content(); ?>
      </div>

    pra saber se o problema tá na função ou em outro lugar. the_content() aplica alguns filtros no conteúdo, e um deles pode estar dando piti no celular. Usando get_the_content() vc pega o conteúdo sem filtro nenhum, e aí pode filtrar na mão, se for o caso.

    Opa…fala ai Ricardo!
    É isso mesmo…ele exibe o primeiro código com a thumb e o title do h3, mas quando chega no content não exibe nada..rs

    Tentei o echo e nada…tentei o get_the_content() e nada tbm..rs
    Ai resolvi fazer um teste, chamar para a versão mobile o tema padrão do wordpress para ver se o problema poderia ser com o tipo de tema, mas o mesmo problema aconteceu…exibiu tudo menos o content.

    Então imaginei que o problema poderia ser no plugin…resolvi ir tirando algumas funções e de cara ele começou a funcionar..rs
    Só que como no tutorial o cara diz ser importante o trecho, imagino que deve ter como arrumar sem ter que deletar tudo…se poder me ajudar eu serei muito grato!..hehehe

    Segue o código do plugin que eu deletei para funcionar o content:

    add_filter('the_content', 'mmp_the_content');
    function mmp_the_content($content) {
      return (
        resize_images(
          paginate(
            remove_tags(
              $content
            )
          )
        )
      );
    }

    Obrigado por responder!
    Abraço

    Ah..talvez seja bom postar as outras funções que essa de cima chama né..rs

    function resize_images($string) {
      $tinysrc = "http://i.tinysrc.mobi/x90/";
      if (request_is_mobile()) {
        $images = '/\<img(.* src=\")([^"]*)(\".*) width=\"\d+\" height=\"\d+\" \/>/Usi';
        $string = preg_replace($images, "<img$1$tinysrc$2$3/>", $string);
      }
      return $string;
    }
    function paginate($string) {
      if (request_is_mobile()) {
        $pages = array();
        $page = '';
        foreach(split('<p>', $string) as $paragraph) {
          $page_length = strlen($page);
          if($page_length > 0 && $page_length + strlen($paragraph) > 2000) {
            $pages[] = $page;
            $page = '';
          }
          $page .= "<p>$paragraph";
        }
    
        $current_page = 0;
        if(isset($_GET['mmp_page']) && is_numeric($current_page = $_GET['mmp_page'])) {
          if ($current_page < 0) {
            $current_page = 0;
          }
          if ($current_page > sizeof($pages)) {
            $current_page = sizeof($pages);
          }
        }
        $string = $pages[$current_page];
        if ($current_page < sizeof($pages) - 1) {
          $next = add_query_arg('mmp_page', ($current_page+1));
          $string .= "<a href='$next'>Next</a>";
        }
      }
      return $string;
    }
    function remove_tags($string) {
      if (request_is_mobile()) {
        $remove_tags = "/\<\/?(marquee|frame|iframe|object|embed)[^>]*\>/Usi";
        $string = preg_replace($remove_tags, "", $string);
        $remove_scripts = "/\<script.*\<\/script\>/Usi";
        $string = preg_replace($remove_scripts, "", $string);
      }
      return $string;
    }

    Haha… sabia que era um filtro do the_content. (dancinha da vitória)…

    Na verdade é seguinte. O que esse código do plugin faz é inserir ainda mais filtros na chamada do the_content(), e justamente esses filtros, ou seja, uma dessas 3 funções, é que criou o problema.

    To pra apostar com vc, que o problema está na primeira função, resize_images.

    Tente usar só assim e ver se resolve:

    add_filter('the_content', 'mmp_the_content');
    function mmp_the_content($content) {
      return (
          paginate(
            remove_tags(
              $content
          )
        )
      );
    }

    Se não resolver, teste uma função de cada vez, até encontrar o erro.

    opa…vlw por responder Ricardo!

    Fiz o que vc falou, tirei um a um e descobri que era o paginate que estava impedindo o conteudo de aparecer..rs
    Mas será que não tem nenhuma importância tirar ele?

    Vlw mais uma vez por ajudar Ricardo!

    Opa, excelente! 🙂

    O que vai acontecer sem a função paginate é que ele não vai dividir seu conteúdo em páginas (nem sei pq ele faria isso, mas é outro problema). Provavelmente não vai alterar em mais nada o funcionamento.

    Se isso resolveu, marque o tópico como resolvido, por favor!

    Perfect Ricardo!
    Vc é um gênio…muito obrigado!
    Vlwwwww

    Ps..assim que o site estiver pronto eu mando o link pra vc dar uma olhada…hehe

    Putz Ricardo…estava vendo e as imagens do the_content não estão aparecendo…rs
    Tem alguma ideia do porque?

    Vlw

    Provavelmente tem a ver com a função resize_images ali em cima. Veja que ela substitui a URL das suas imagens por uma outra, processada no servidor externo.

    Então…eu desconfiei, consegui fazer a imagem aparecer mas ela não se adapta ao tamanho da tela..rs
    Estou tentando descobrir como arrumar, entrei nesse site do link e tals mas ainda não encontrei a solução do resize.

    Uma solução, talvez, seja deixar essa função de lado e escrever um filtro no seu functions.php pra que quando o usuário estiver vendo o tema mobile, o WP substitua as inserções de imagens comuns por inserções dos thumbnails, ou de um outro formato reduzido.

    Assim você não vai depender do serviço externo e reduz igualmente a carga de dados pro usuário.

    Mais tarde posso arrumar um snippet pra te ajudar nisso. Que é possível, é, tenho certeza. Mas tenho que ver exatamente como fazer.

Visualizando 15 respostas - 1 até 15 (de um total de 16)
  • O tópico ‘Mobile WP Não exibe conteúdo’ está fechado para novas respostas.