2Logo WordpressFixação Rich Snippets Testing Tool para Microdados

Sobre 2 anos atrás, publiquei um artigo sobre como resolver problemas com temas WordPress que não passar o Rich Snippets Testing Tool Google. Desde então lotes mudou – WordPress e a maioria dos temas têm um melhor suporte, HTML5 e CSS3 chegaram, e Google, Yahoo e Bing se reuniram e decidiram se concentrar em microdados, via schema.org. Nos microformatos tempo parecia ser a maneira mais fácil de marcar páginas, e a ferramenta de teste teve o apoio mais abrangente para estes. A mudança para Microdados e as alterações para WordPress necessário um novo artigo: é isso!

Em vez de ter vários artigos separados para diferentes temas decidi tentar fornecer todas as informações em 1 orientar. Isso torna mais fácil para manter-se atualizado, e significa que há apenas 1 ponto central para todas as solicitações e discussão. Ele também faz mais sentido como vários dos passos são os mesmos, independentemente do que tema que você está usando. Eu não estou indo para cobrir todos os extras opcionais neste artigo, apenas o básico para obter o seu site para validar com a ferramenta. Uma vez que você conseguiu que você deve encontrar a adição de marcação extra é relativamente fácil. Então vamos começar…

Adicionar um link do seu perfil do Google para o seu site

Você vai ver em meu perfil do Google + que eu tenho um link público para https://diymediahome.org – você vai precisar do mesmo para o seu próprio site. Idealmente, você vai precisar de todos os seus autores para ter um perfil do Google que está ligado ao seu site da mesma forma como este.

  1. Faça login na sua perfil do Google
  2. Role para baixo até ver a ligações seção de um lugar para o canto inferior direito da página
  3. Clique no editar link
  4. Sob o contribuidor á seção clique Adicionar link personalizado
  5. Certifique-se a caixa à direita do texto contribuidor á é definido para público
  6. Digite seu nome do site (por exemplo. DIY Media Home) e endereço (por exemplo. https://diymediahome.org)
  7. Clique em Salvar

Adicione um link do seu site para o seu perfil do Google

Agora precisamos adicionar um link de sua página do autor para o seu perfil do Google. Tem 2 formas alternativas para fazer isso, Eu recomendo usar o Yoast ESTE plug-in.

  1. Instale o Yoast ESTE plug-in OR adicione o seguinte código para o arquivo functions.php do seu tema
    update_contactmethods função( $contactmethods ) {
    // Adicionar Google Profiles
    $ contactmethods['Googleplus'] = 'Google ';
    // Adicionar Twitter
    $ contactmethods['Twitter'] = __( 'Username do Twitter (sem @)', 'Wordpress-seo' );
    
    retornar $ contactmethods;
    }
    add_filter( 'user_contactmethods', 'update_contactmethods', 10, 1);
  2. Vá para o seu perfil do autor na interface de administração do WordPress (pairar sobre Usuários no menu do lado esquerdo, e clique em Seu perfil)
  3. No Google+ campo de adicionar um link para o seu perfil do Google (por exemplo. https://plus.google.com/104657888470728381512 /)
  4. Certifique-se de que você quer, ou seus outros autores do site fazer a mesma coisa, e cada link para seus próprios perfis do Google
  5. Agora, se você estiver usando o plugin Yoast, ir para o ESTE menu e selecione Títulos e Metas, clamber no Casa menu no topo da página e no Autor destaque caixa de suspenso selecione o usuário que deseja usar como o autor da página inicial
  6. Se você é insistente sobre não usar o plugin Yoast você precisará adicionar manualmente o seguinte código para Header.php (supondo que você tem um). Não se esqueça de mudar o meu perfil google url para o seu. Este código irá usar o perfil url google o post do autor, se houver um válido, e vai usar um padrão (seu) se não houver.
    <link rel ="autor" href ="<?php $ gplus = 'https://plus.google.com/115369062315673853712/posts '; se ( is_singular() ) {$ post mundial; $gplus = get_the_author_meta( 'Googleplus', $pós->post_author );} echo $ gplus; ?>"/>

Corrigir erros de um desaparecido “atualizado” campo

A maioria dos temas wordpress incluir informações sobre quando o artigo foi publicado na área de informações do posto, mas muito poucos incluem também quando ele foi atualizado. É uma pena, porque actualizada é necessária enquanto que, na verdade, não é publicada! Adicionando é fácil embora, e novamente, existem 2 maneiras, a maneira correta ea maneira corte rápido. Eu recomendo a maneira correta é claro, mas se necessário, pode recorrer à corte rápido. Nós também vamos mudar a partir microformatos para microdados ao mesmo tempo.

A maneira correta

Nós vamos adicionar algumas informações adicionais para enviar cabeçalhos, tanto para motores de busca e para os nossos visitantes. Teremos de fazer isso por mensagens, páginas, arquivos e na página inicial.

  1. Precisamos encontrar o arquivo que contém o código que gera o link publicado. Isto irá quase certamente usar a função de wordpress get_the_date(). Você pode pesquisar através de seus arquivos de tema, ou referir-se a detalhes específicos temáticos abaixo detalhes de onde eu ter fornecido para os lotes de temas
  2. Estamos indo para verificar se as datas publicados e atualizados são os mesmos. Se forem, vamos apenas adicionar o extra dateUpdated itemprop mas se eles são diferentes que irá imprimir algum texto extra para o visitante
  3. Nós vamos adicionar a seguinte (e modificá-lo como explica)
    <?php if(get_the_date()== Get_the_modified_date()): ?>
    
    //vamos usar o código original apenas com a classe atualizada adicionado
    / / Colocar o código original do tema aqui
    / / Remove qualquer class =""
    //adicionar itemprop ="datePublished DateCreated DateModified" ao HTML tag em torno de get_the_date() função
    
    <?php mais: ?>
    
    //vamos usar um pouco de código apenas com a data atualizada adicionado
    / / Copie o código original do tema para aqui e, em seguida, modificá-lo como abaixo
    / / Remove qualquer class =""
    //adicionar itemprop ="datePublished DateCreated" ao HTML tag em torno de get_the_date() função
    / / Adiciona uma nova tag html para a linha onde você quer que ele apareça como abaixo
    / / Atualizado <?php echo get_the_modified_date() ?>
    
    <?php endif; ?>
  4. Você quer ter de descobrir o código do tema original e editá-lo, ou consulte os detalhes para temas específicos abaixo.
  5. Você pode ter que repetir esta edição para vários arquivos

O corte rápido

Nós estamos indo para enganar e fornecer a data de publicação como a data atualizada, mesmo que o post realmente foi atualizado mais recentemente. Se o post foi atualizado, então vamos realmente ser prestada uma informação inexacta, mas ainda vai validar. Realmente é melhor fazê-lo corretamente, se possível, mas se você é insistente em fazê-lo desta maneira continue a ler. Como acima teremos de fazer isso por mensagens, páginas, arquivos e na página inicial.

  1. Como acima, precisamos encontrar o arquivo que contém o código que gera o link publicado. Isto irá quase certamente usar a função de wordpress get_the_date(). Você pode pesquisar através de seus arquivos de tema, ou consultar a tabela abaixo, onde eu tenho desde detalhes para os lotes de temas
  2. Encontre o HTML elemento que rodeia a data (frequentemente terá class="published").
  3. Editar o elemento, removendo a classe e adicionar o seguinte em vez disso itemprop="datePublished dateCreated dateUpdated"
  4. Como acima, você pode precisar repetir esta edição em múltiplos arquivos

Substituindo os microformatos embutidos (porque misturar formatos de rich snippet quebra coisas)

Por wordpress padrão ainda está usando marcação microformato para comentários, que, infelizmente, parece quebrar marcação microdados de coisas como receitas. A melhor maneira de corrigir isso é para remover a marcação microformato e substituí-lo com marcação de microdados. Infelizmente, as funções essenciais wordpress que produzem essa marcação não tem um filtro convenientemente localizado ou um gancho de modo que este requer um pouco de mexer sobre.

Substituindo vcard na seção de comentários

  1. O que vamos fazer é usar um comentário retorno de chamada para alterar a saída dos comentários. Muitos temas já utilizam uma chamada de retorno que podemos modificar, e para aqueles que não vamos acrescentar um baseado no padrão wordpress
  2. Verifique se você tema já tem um comentário callback – pesquisar seus arquivos de tema para a função wp_list_comments. Se ele inclui o código callback= ou 'callback' => então ele está usando uma chamada de retorno que você deve ser capaz de encontrar (provavelmente em functions.php) olhando para o nome da função de callback, que é a parte depois do sinal = ou seta, por exemplo. wp_list_comments( array( 'callback' => 'twentyten_comment' ) ); ou wp_list_comments('type=comment&callback=bones_comments');. Se isso não acontecer, então teremos de adicionar um adicionando callback=diymh_comment ou array( 'callback' => 'diymh_comment' ) para a linha.
  3. Se for necessário para adicionar um comentário de retorno de chamada, então você vai precisar adicionar o seguinte código ao functions.php
    função diymh_comment($comente, $args, $profundidade) {
    $GLOBALS['Comentário'] = $ Comment; ?>
    <que <?php comment_class(); ?> id ="li-how<?php comment_id() ?>">
      <id = div"comment-<?php comment_id(); ?>">
    <class = div"comment-autor novcard">
    <?php echo get_avatar($comente,$size = '48 ',$default = '<path_to_url>' ); ?>
    
    <?php printf(__('<citar class ="fn">%s</citar> <span class ="diz">diz:</palmo>'), get_comment_author_link()) ?>
    </div>
    <?php if ($comment->comment_approved '0 == ') : ?>
    <em><?php _e("Seu comentário está aguardando moderação.") ?></em>
    <br />
    <?php endif; ?>
    
    <class = div"como commentmetadata meta"><um href ="<?php echo htmlspecialchars( get_comment_link( $comment->Comment_id ) ) ?>"><?php printf(__('% 1 $ s em% 2 $ s'), get_comment_date(),  get_comment_time()) ?></uma><?php edit_comment_link(__('(Editar)'),'','') ?></div>
    
    <?php comment_text() ?>
    
    <class = div"responder">
    <?php comment_reply_link(array_merge( $args, ordem('Profundidade' => $profundidade, 'Max_depth' => $args['Max_depth']))) ?>
    </div>
      </div>
    <?php
    }
  4. Você vai notar que este código tem um class="novcard" em vez do original class="vcard".
  5. Se o tema tinha o seu próprio retorno, você precisa encontrar a função de retorno e substituir todas as instâncias do class="vcard" com class="novcard"

Substituindo hfeed no cabeçalho

  1. Próximo, precisamos também remover todas as instâncias de class="hfeed", que são normalmente encontrados em header.php. Substitua todas as ocorrências de hfeed com nohfeed

Substituindo hentry e título rich snippets

  1. Podemos substituir esses elementos com um par de funções puras adicionado ao functions.php
    função diymh_replace_hentry($aulas){
    se(($key = array_search('Hentry', $aulas)) !== False) $aulas[$chave]= 'Nohentry';
    retornar $ aulas;
    }
    add_filter('Post_class','Diymh_replace_hentry');
    
    função diymh_microdata_title($título) {
        return '<período itemprop ="nome">. $ Title.</palmo>';
    }
    add_filter('The_title', 'Diymh_microdata_title', 10, 2);

Adicionando o tipo de informação (por exemplo. Artigo, Receita, etc) para o cabeçalho artigo

  1. Primeiro, decidir que tipo de trabalho que você está publicando – provavelmente um artigo. Dê uma olhada na lista de schema.org
  2. Encontre o HTML etiqueta que contém a função post_class()
  3. Adicione o código itemscope itemtype="https://schema.org/Article" (substituir o artigo se você escolheu um tipo diferente de trabalho)

Finalmente, para evitar quebrar todos os estilos

  1. Você precisará editar style.css do seu tema e fazer uma pesquisa / substituir operação para substituir todas as instâncias .vcard com .novcard e substituir todas as instâncias .hfeed com .nohfeed para que as nossas mudanças não atrapalhar qualquer CSS styling de nossos comentários

Corrigir quaisquer outros erros

Quaisquer outras alterações necessárias serão detalhados em um por tema base abaixo. Se você tem um tema que você é incapaz de corrigir por favor postar um comentário. Se é um tema livre, por favor deixe-me saber o nome do tema, e se é um tema premium por favor me avise para que eu possa lhe fornecer um endereço de e-mail para enviar uma cópia compactada de.

detalhes específicos temáticos

Antes apenas realizar essas edições não se esqueça de realizar as etapas para vincular seu perfil do Google e seu site para o outro, e instalar Yoast ESTE, ou adicione o código acima fornece.

 

Twenty Ten 1.5

Em functions.php substituir este

função twentyten_posted_on() {
printf( __( '<span class ="%1$s">Postado em</palmo> %2$s <span class ="meta-setembro">por</palmo> %3$s ', 'Twentyten' ),
'Meta-prep-autor meta-prep',
sprintf( '<um href ="%1$s" title ="%2$s" rel ="marcador"><span class ="entry-data">%3$s</palmo></uma>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<span class ="autor vcard"><a class ="url fn n" href ="%1$s" title ="%2$s">%3$s</uma></palmo>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'Ver todas as mensagens de% s', 'Twentyten' ), get_the_author() ) ),
get_the_author()
)
);
}

Com esta

função twentyten_posted_on() {
se(get_the_date()== Get_the_modified_date()){
printf( __( '<span class ="%1$s">Postado em</palmo> %2$s <span class ="meta-setembro">por</palmo> %3$s ', 'Twentyten' ),
'Meta-prep-autor meta-prep',
sprintf( '<um href ="%1$s" title ="%2$s" rel ="marcador"><período itemprop ="datePublished DateCreated DateModified">%3$s</palmo></uma>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<span class ="autor vcard"><um itemprop ="autor" href ="%1$s" title ="%2$s">%3$s</uma></palmo>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'Ver todas as mensagens de% s', 'Twentyten' ), get_the_author() ) ),
get_the_author()
)
);
}
outro{
printf( __( '<span class ="%1$s">Postado em</palmo> %2$s <span class ="meta-setembro">por</palmo> %3$s.  Atualizado <período itemprop ="DateModified">%4$s</palmo>.', 'Twentyten' ),
'Meta-prep-autor meta-prep',
sprintf( '<um href ="%1$s" title ="%2$s" rel ="marcador"><período itemprop ="datePublished DateCreated">%3$s</palmo></uma>',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '<span class ="autor vcard"><um itemprop ="autor" href ="%1$s" title ="%2$s">%3$s</uma></palmo>',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'Ver todas as mensagens de% s', 'Twentyten' ), get_the_author() ) ),
get_the_author()
),
get_the_modified_date()
);
}
}

Em functions.php substituir este

<class = div"comment-author vcard">

Com esta

<class = div"comment-autor novcard">

Em header.php substituir este

<id = div"invólucro" class ="hfeed">

Com esta

<id = div"invólucro" class ="nohfeed">

Em loop.php (3 casos), loop-single.php, loop-page.php e loop-attachment.php substituir este

<id = div"pós-<?php the_ID(); ?>" <?php post_class(); ?>>

Com esta

<id = div"pós-<?php the_ID(); ?>" <?php post_class(); ?> itemscope itemtype ="https://schema.org / artigo">
Vinte Onze 1.5

chegando muito em breve…

Annotum Base de Dados 1.1.1

Em 7 arquivos (funções recursos de articles.php, -article.php tipo trecho , trecho trecho-default.php, -article.php tipo de conteúdo , content page.php, content content-default.php, content artigo-pdf.php) substituir

<artigo <?php post_class('Artigo cheio "); ?>>

com

<artigo <?php post_class('Artigo cheio "); ?> itemscope itemtype ="https://schema.org / artigo">

 

Acho que perdi alguma coisa? Deixe-nos saber por comentar abaixo. Se você deseja se inscrever, use o link de inscrição no menu no canto superior direito. Você também pode compartilhar isso com seus amigos usando os links sociais abaixo. Felicidades.

Deixe uma resposta

2 Comentários