As postagens podem ter pais?


13

As postagens devem ter pais? Se sim, o que isso significaria para uma postagem ter um pai?

Além disso, se houver algumas restrições às postagens com pais, onde isso será aplicado? Não no DB como eu o vejo.

Respostas:


15

Fora da caixa, não, as postagens não podem ter pais. Eles podem ser atribuídos a categorias, que podem ser organizadas hierarquicamente. As páginas, no entanto, podem ter pais e você pode criar uma estrutura de menu usando esse recurso.

Quanto ao local onde isso é imposto: o pai de uma postagem é armazenado na coluna "post_parent" em "wp_posts". Ela não é realmente aplicada como tal, apenas a interface do usuário padrão não oferece uma opção para defini-la e a codificação WP padrão não usa esse valor para Postagens. Não seria muito difícil criar um tipo de postagem personalizado para ter postagens com os pais.


2
Observe também que os anexos de mídia fazem uso da post_parentcoluna para identificar a qual página / postagem (incluindo tipos personalizados de postagem) às quais estão anexados.
David Gard

@DavidGard Você está certo. Mas acho que essa funcionalidade não afetará se atribuirmos post_parenta outro "post_id", como seria o 0contrário.
Stranger

11

O Wp construiu "Páginas" (hierárquicas, permitidas pelos pais) e "Postagens" (não hierárquicas). Também existem outros tipos de postagem, mas vamos deixar isso de lado.

Se o Q resultar em:

Posso ter postagens hierárquicas?

Então a resposta é Sim , ... você pode ter "postagens" hierárquicas. Mas como eles não estão integrados, você precisará registrar seu próprio Tipo de postagem personalizado - consulte Argumentos »hierárquico.

Tais "Postagens" (ou artigos, o que seja, ...), então - no caso de terem uma postagem pai - definem o ID pai dentro de seu objeto. Então, em um loop, você pode fazer o seguinte:

if ( have_posts )
{
    the_post();
    // etc.

    global $post;
    // call parent: http://codex.wordpress.org/Function_Reference/get_post
    $parent = get_post( $post->post_parent );

    echo "<h2>{$post->post_title} is a child of {$parent->post_title}";

    // etc.
} // endif;

2
Preguei perfeitamente. Exatamente a coisa que eu estava procurando.
Paras Shah

-1

Do ponto de vista do mecanismo de pesquisa, duas dessas respostas combinadas ajudarão o Google a rastrear a hierarquia de suas postagens, além dos usuários, é claro.

  1. Adicione uma página e use-a para hospedar suas postagens. "A melhor maneira de definir uma página pai em todas as suas postagens é através do menu (Aparência -> Personalizar). Você pode definir uma página estática para sua home page ou página de postagens. Quando você define uma página de postagem estática, essa página será exibida. ser o pai de cada postagem de blog individual ".

  2. Altere a estrutura do permalink para / blog /% postname%, conforme mencionado acima. "Suponha que você queira anexar um blog antes de publicar no URL, para garantir que o nome do slug da página do seu blog seja blog.

Em seguida, vá para WP-admin-panel> configurações> link permanente e escolha a última opção "estrutura personalizada" e adicione o seguinte:

/ blog /% postname% /

e salve as alterações. Será aplicado apenas à sua página de blog, outra página não exibirá o blog como pai. "

Dessa forma, o Google vê a hierarquia nos sitemaps como domain.com/page/post (nessa ordem) e também encontra o conteúdo no mesmo local. Como os usuários. Tarefa concluída.


-4

Suponha que você queira anexar um blog antes de publicar no URL, e não se esqueça de que o nome do slug da página do seu blog é blog.

Em seguida, vá para WP-admin-panel> configurações> link permanente e escolha a última opção "estrutura personalizada" e adicione o seguinte:

/blog/%postname%/

e salve as alterações.

Será aplicado apenas à sua página de blog, outra página não exibirá o blog como pai.


-6

Eu sei que este é um post antigo. No entanto, nenhuma dessas respostas está correta e eu queria postar a solução usada para resolver esse problema. A melhor maneira de definir uma página pai em todas as suas postagens é através do menu (Aparência -> Personalizar). Você pode definir uma página estática para sua página inicial ou página de postagens. Quando você define uma página de postagem estática, essa página será o pai de cada postagem de blog individual.


2
Essa não é uma página pai - é um modelo que contém um arquivo de postagens. Configurar isso não torna as postagens hierárquicas.
Kaiser

Como isso não é uma página pai? É uma página estática (que, a propósito, não precisa ser um arquivo morto, qualquer modelo de página que você atribuir a essa página estática pode ter o que você deseja) e, quando isso é configurado, seus URLs seguem essa hierarquia, bem como o Breadcrumbs no site. É uma correção de 1 minuto que permite atribuir uma página estática como pai principal. Sua pergunta menciona NADA sobre ser hierárquico em primeiro lugar. Talvez você possa me esclarecer como essa solução seria uma prática ruim?
LateToTheParty

"As postagens devem ter pai" é o mesmo que "As postagens são hierárquicas". Um modelo pode conter tudo , mas o simples fato de conter um loop que retorna e exibe um loop de arquivamento não (a) torna a página seu pai (é apenas o local onde o loop está) e (b) não tornar o tipo de postagem incorporado "post" hierárquico ou em outras palavras, não atribui um pai. Mas sim, você pode convocar postagens em um loop por critérios específicos (como uma categoria filho compartilhada).
Kaiser #

Não se deixe levar por críticas ou esclarecimentos de sua pergunta ou resposta. Este lugar é algo em que isso realmente precisa acontecer o tempo todo para que as melhores respostas sejam bem-sucedidas e sirva como local de wiki / biblioteca onde se pode ir e instantaneamente descobrir como fazer algo ou obter o máximo possível de insights sobre como algo funciona. Até incentivamos pessoas (como você) a comentar outras respostas também. Lembre-se de que em nenhum lugar mencionei que sua resposta é uma má prática . É verdade de várias maneiras, apenas a afirmação de que torna o tipo de postagem hierárquico não é.
Kaiser #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.