在正文中添加一个类 - PHP Wordpress

时间:2017-12-05 07:50:48

标签: php wordpress function class

我正在尝试在WordPress主题中向正文添加一个类,这样当页面上没有帖子时它就不会显示搜索栏。我现在在我的functions.php中找到一个特定的页面,如果没有帖子的话。

<?php
add_filter( 'body_class', 'custom_class' );
function custom_class( $classes ) {
    if(strpos($_SERVER['REQUEST_URI'], 'agent') !== false ){
        $classes[] = 'noSearchBar';
    }
    if(!have_posts() ){
      $classes[] = 'noSearchBar';
    }
    return $classes;
}
?>

适用于大多数网页,但在某些网页上,它使用的是其他模板,而不是像have_posts这样调用帖子:

<?php
   global $wp_query;

   if ( have_posts() ) :
       while ( have_posts() ) : the_post();

           get_template_part('template-parts/property-for-listing');

       endwhile;
       wp_reset_postdata();
   else:
       ?>
<h4><?php esc_html_e('Sorry No Results Found', 'houzez') ?></h4>
<?php
   endif;
   ?>

它正是这样提出来的:

<?php
   global $wp_query, $paged;
   if(!$fave_prop_no){
       $posts_per_page  = 9;
   } else {
       $posts_per_page = $fave_prop_no;
   }
   $latest_listing_args = array(
       'post_type' => 'property',
       'posts_per_page' => $posts_per_page,
       'paged' => $paged,
       'post_status' => 'publish'
   );

   $latest_listing_args = apply_filters( 'houzez_property_filter', $latest_listing_args );

   $latest_listing_args = houzez_prop_sort ( $latest_listing_args );
   $wp_query = new WP_Query( $latest_listing_args );

   if ( $wp_query->have_posts() ) :
       while ( $wp_query->have_posts() ) : $wp_query->the_post();

           get_template_part('template-parts/property-for-listing');

       endwhile;
   else:
       get_template_part('template-parts/property', 'none');
   endif;
   ?>

这使我的功能无效。 template-parts/property-none中只有一行代码,它只是说其他文件是一样的。所以我不确定为什么其他模板不会添加正文类。

1 个答案:

答案 0 :(得分:0)

你可以这样做,

<?php
add_filter( 'body_class', 'custom_class' );
function custom_class( $classes ) {
  if ( is_single('post') ) {
     $classes[] = 'SearchBar';
  }else{
     $classes[] = 'noSearchBar';
  }
  return $classes;
}
?>

以下示例适用于单个帖子页面。有关更多条件。visit

希望这会对你有所帮助。