switch_to_blog () considerações de desempenho e alternativas

4

Atualmente estou na fase conceitual para uma rede multisite.

A ideia básica é: existem vários sites em rede e todos publicam postagens por conta própria. O administrador da rede é capaz de estabelecer "links de conteúdo" entre cada um dos blogs. Um "link de conteúdo" significa que o administrador pode configurar o compartilhamento de postagens entre os blogs no back-end. Qualquer um ( --> ) ou ambos ( <-> ). Isso resulta nas páginas de listagem de um blog mostrando também postagens de outros blogs.

Por exemplo, se temos três blogs, os "links de conteúdo" podem ser configurados assim:

  

A < - > B

     

A - > C

Isso resultaria em:

  

A também mostra o conteúdo de B

     

B também mostra o conteúdo de A

     

C também mostra o conteúdo de A e também de B (por meio da relação de ancestralidade B - > A - > C )

Pessoalmente, eu gostaria de ficar com WP_Query (), como eu gosto dos recursos que vou conseguir com ele:

  • suporte à paginação,
  • consultas de taxonomia,
  • consultas post_meta.

Mas parece que estou usando o switch_to_blog () massivamente se eu quiser usar o WP_Query (). O sistema deve ser colocado por aprox. 100 blogs com 200 posts cada, o que significa que, no pior dos casos, eu tenho que usar 99 chamadas para switch_to_blog () para renderizar uma única página de lista / categoria de postagem.

Alguém já fez um enorme compartilhamento de conteúdo entre blogs em rede ou teve uma idéia de como obter um desempenho decente para essa tarefa?

    
por s1lv3r 17.07.2013 / 13:21

1 resposta

2

Você deve primeiro ler (ênfase minha):

  

Os sites em uma rede multisite são separados , bem como os sites separados   blogs no WordPress.com. Eles não estão como coisas em   outros tipos de redes (embora os plugins possam criar vários tipos   interconexões entre os sites). Se você planeja criar sites   que estão strongmente interconectados, compartilham dados ou compartilham usuários,   então uma rede multisite pode não ser a melhor solução .

     

enlace

Se você insiste em fazer multisite fazer o que não pretende fazer, e em vez disso fazer o que parece que a maioria das pessoas quer fazer, então você tem muito trabalho a fazer. Você deve conseguir que WP_Query honre suas alterações no site por meio de vários filtros , especialmente estes . E algumas funções executam suas próprias consultas , então você terá que lidar com isso individualmente.

Parece que o multisite é o caminho errado para abordar isso. Quando eu preciso de algo assim, eu costumo fazer isso com tipos de postagem personalizados. Você criaria um CPT para cada "blog", embora eu tenha que admitir que nunca tentei criar 100 CPTs no mesmo site. O total bruto de postagem (20.000) não deve ser um problema. Com o uso inteligente de modelos, você pode "virtualizar" aqueles em sites visualmente quase independentes.

Dado o seu comentário abaixo que você precisa de "mapeamento de domínios, áreas de usuários separadas e áreas de administração separadas", não tenho certeza se isso funcionará. Você provavelmente poderia fazer com que o mapeamento de domínio funcionasse, mas as áreas de usuário e administração separadas seriam muito trabalhosas. Essa é uma das únicas outras opções em que consigo pensar.

    
por s_ha_dum 17.07.2013 / 16:50