仅在侧栏中隐藏主页和显示上的帖子

时间:2016-02-04 12:52:47

标签: php wordpress

我想在主页上隐藏属于特定类别的帖子,并让它只显示在侧边栏中。

我可以在主页上成功隐藏帖子,但我无法在侧边栏中显示。

function exclude_category_home( $query ) {
     if ( $query->is_home ) {
      $query->set( 'cat', '-14' );
    }
    return $query;
 }

 add_filter( 'pre_get_posts', 'exclude_category_home' ){

我该怎么办呢?

3 个答案:

答案 0 :(得分:0)

使用此代码创建sidebar.php

<aside role="complementary">
    //Display your Post here
    <?php if ( is_active_sidebar( 'sidebar1' ) ) : ?>
        <?php dynamic_sidebar( 'sidebar1' ); ?>
    <?php endif; ?>
</aside>

然后你可以在你的页面中添加这样的侧边栏:

<?php get_sidebar( 'sidebar1' ); ?>

要显示某个类别的特定帖子,您可以这样做:

<aside role="complementary">
<?php
    $args = array (
            'post_type' => 'annonce',
            'tax_query' => array (
            array(
            'taxonomy' => 'annonce_category',
            'field' => 'slug',
            'terms' => array( 'Tanzpartner gesucht', 'Tanzpartnerin gesucht' ),
            'operator' => 'IN',
            ),
        ),
        );
        $query = new WP_Query( $args );
        ?>
        <?php if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?>
        .....
<?php if ( is_active_sidebar( 'sidebar1' ) ) : ?>
    <?php dynamic_sidebar( 'sidebar1' ); ?>
<?php endif; ?>

答案 1 :(得分:0)

您可以创建短代码并将其添加到侧边栏中,这对您有用。请按照以下步骤操作: 在你的function.php中添加以下代码:

 function wpb_postsbycategory() {
      // the query
     $the_query = new WP_Query( array( 'category_name' => 'announcements', 'posts_per_page' => 10 ) ); 
     // The Loop
      if ( $the_query->have_posts() ) {
           $string .= '<ul class="postsbycategory widget_recent_entries">';
         while ( $the_query->have_posts() ) {
            $the_query->the_post();
                if ( has_post_thumbnail() ) {
                    $string .= '<li>';
                        $string .= '<a href="' . get_the_permalink() .'" rel="bookmark">' . get_the_post_thumbnail($post_id, array( 50, 50) ) . get_the_title() .'</a></li>';
                } else { 
                         // if no featured image is found
                        $string .= '<li><a href="' . get_the_permalink() .'" rel="bookmark">' . get_the_title() .'</a></li>';
                }
             }
    } else {
      // no posts found
    }
     $string .= '</ul>';
     return $string;
        /* Restore original Post Data */
        wp_reset_postdata();
}
  // Add a shortcode
  add_shortcode('categoryposts', 'wpb_postsbycategory');

 // Enable shortcodes in text widgets
 add_filter('widget_text', 'do_shortcode');

 Now Add [categoryposts] shortcode in the text widget and save it.

这可能对你有用......

答案 2 :(得分:0)

一种简单的方法可能是使用此插件(https://wordpress.org/plugins/display-posts-shortcode/)。它根据不同的特征(包括类别)查询帖子。它通过使用短代码来工作。