it-swarm-pt.tech

Precisa de conselhos> conversão de atribuições de categoria para valores meta personalizados pós

Antes de descobrir a capacidade de adicionar uma meta box (com meta seleções personalizadas de post) à página e ao editor de postagem, eu estava (e ainda estou, até certo ponto) usando categorias para definir o post meta personalizado.

Por exemplo, para criar uma postagem nofollow ou noindex, criei uma categoria chamada nofollow e outra chamada noindex e atribuí uma ou ambas as categorias a uma postagem ou página.

Em seguida, no meu arquivo header.php, eu faria um teste in_category para gravar as metatags apropriadas na página.

Exemplo:

<?php
if (in_category('noindex') && in_category('nofollow')){?>
<meta name="robots" content="noindex, nofollow">
<?php}?>

Eu também tenho categorias personalizadas para coisas como "Desativar o Adsense para esta página", "Não mostrar anexos de imagem para esta página", "Ocultar esta página de menus", etc ...

Então agora que eu decidi me afastar do uso de categorias onde eu deveria estar usando custom post meta, o código acima em header.php se torna ...

<?php 
    if (get_post_meta( $post->ID, '_noindex', true ) && get_post_meta( $post->ID, '_nofollow', true )){>?
    <meta name="robots" content="noindex, nofollow">
<?php } ?>

Então, esse é o meu plano, mas agora tenho o problema de atualizar sites que usam o antigo meio de definir opções de postagem personalizadas por meio das atribuições de categoria.

Então, eu preciso de um roteamento que reatribua os valores de categoria aos valores meta personalizados de pós para cada post e página no site que estou atualizando.

Estou apenas procurando por alguns conselhos rápidos sobre como fazer isso e possivelmente algumas dicas de código sobre a rotina necessária.

Como esse é um tema que pode ser atualizado, como parte do processo de atualização, eu gostaria de executar um script uma vez, quando o tema é instalado pela primeira vez (ou o usuário clica no meu utilitário de atualização) que é executado na tabela de opções e para cada instância de uma das minhas atribuições de categoria personalizada, ela cria a meta designação personalizada para essa postagem ou página.

Por exemplo, se uma postagem pertencer à categoria "Oculto", ela será atribuída à meta "oculta".

Espero ter explicado isso bem o suficiente. Agradeço qualquer informação que você possa fornecer.

Talvez seja tão simples quanto uma série de instruções SQL personalizadas que são executadas para cada atribuição de categoria possível?

1
Scott B

A ideia básica seria percorrer os posts e suas categorias, atribuindo meta-on matches.

Algo parecido com isto (não se esqueça de verificar cópia de teste de dados, etc, etc):

$posts = get_posts( array(
    'numberposts' => -1
) );

foreach( $posts as $post ) {

    $categories = get_the_category( $post->ID );

    foreach( $categories as $category ) {

        if( 'Hidden' ==  $category->name )
            add_post_meta( $post->ID, '_hidden', 'yes', true );
    }

}

Esqueceu-se de adicionar exclusão quando terminar:

$category = get_category_by_slug( 'hidden' );
wp_delete_category( $category->term_id );
1
Rarst