Manter o conteúdo em destaque na página inicial com o pedido original

17

Estou pesquisando como manter a postagem em destaque na página inicial do meu blog sem excluí-la da publicação. Meu blog usa o tema Twenty Fourteen. Encontrei esta solução.

Abra o featured-content.php na pasta inc do seu tema e procure o código a seguir (linha 269 no nosso caso).

$query->set( 'post__not_in', $featured );

Simplesmente comente esta linha, adicionando duas barras à sua frente, para obter o seguinte:

// $query->set( 'post__not_in', $featured );

Mas o arquivo não tem essa linha e o tema filho não pode substituir a pasta inc do tema pai.

Encontrei outra solução e ela funciona, mas o problema é que esse código mostra a postagem do conteúdo em destaque não na ordem original. Quando uma postagem de conteúdo antiga - eu estou usando uma postagem adesiva para tornar a postagem em destaque - se tornar destaque, a postagem de conteúdo em destaque se tornará a primeira ordem e a outra postagem.

Eu tentei usar tag condicional como este.

function show_featured_content_on_home() {
if ( !is_home() ) {
remove_action( 'pre_get_posts', array( 'Featured_Content', 'pre_get_posts' ) );
    }
}
add_action( 'init', 'show_featured_content_on_home', 31 );

A segunda página e assim por diante estão bem - mostram as postagens em destaque em ordem - mas a página inicial ainda tem problemas.

Alguma sugestão?

Naziman Azlye
fonte
Eu acho que tenho a resposta. Para que funcione, você deve usar a tag 'em destaque' do que usar post fixo para criar conteúdo em destaque. Portanto, a solução está correta e tenho um entendimento errado e dou a pergunta errada. A tag condicional, você pode removê-lo porque o código funciona sem tags condicionais.
Naziman Azlye
11
Eu sei que isso é muito tarde, mas você se importaria de adicionar o comentário acima como resposta? Essa pergunta tem alguns votos positivos e ter uma resposta adequada torna mais óbvia. Desde já, obrigado!
Kraftner

Respostas:

1

Eu acho que você pode usar o WPQuery

    $the_query = new WP_Query( array( 'post__in' => get_option( 'sticky_posts' )) ); ?>

    <?php if ( $the_query->have_posts() ) : ?>

        <!-- pagination here -->

        <!-- the loop -->
        <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>   
<h2><?php the_title(); ?></h2>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->

        <?php wp_reset_postdata(); ?>


    <?php endif; ?>

e para solicitar sua postagem, você pode usar order and orderby consulte a referência https://codex.wordpress.org/Class_Reference/WP_Query

Taj Khan
fonte