【问题标题】:Add if statement to WP query using Sage使用 Sage 将 if 语句添加到 WP 查询
【发布时间】:2025-12-30 01:05:06
【问题描述】:

所以这可能是一件非常愚蠢/简单的事情,但我无法解决这个问题。如果没有找到帖子,我想要实现的是在 WP 循环之后显示信息。所以我得到了这段代码:

 @php
            $args = array (
            'post_type' => 'jobs',
            'order' => 'ASC',
            'posts_per_page' => '-1',
            //'paged' => '1',
            );

            $loop = new WP_Query( $args );


            while ( $loop->have_posts() ) : $loop->the_post(); 
            @endphp


            <div class="col-lg-12" data-postID='{!! get_the_ID() !!}' >
                <div>
                    <a href="{!! the_permalink() !!}">
  
                        <div class="jobButton">
                            {!! the_title() !!}
                            <div class="arrow">
                            </div>
                        </div>
                    
                    </a>               
                </div>
            </div>
            

            @php
            endwhile; 

            wp_reset_postdata(); 
 @endphp 

它有效。但是当我尝试使用类似的东西时:

@noposts <content here> @endnoposts

@if ($loop->have_posts()) <content here> @endif

它使 Wordpress 崩溃.. 怎么办?

【问题讨论】:

  • 解释 “它使 Wordpress 崩溃..”。检查您的错误日志。

标签: php wordpress while-loop roots-sage


【解决方案1】:

你有没有这样尝试过

@php
            $args = array (
            'post_type' => 'jobs',
            'order' => 'ASC',
            'posts_per_page' => '-1',
            //'paged' => '1',
            );

            $loop = new WP_Query( $args );

if($loop->have_posts()):
            while ( $loop->have_posts() ) : $loop->the_post(); 
            @endphp


            <div class="col-lg-12" data-postID='{!! get_the_ID() !!}' >
                <div>
                    <a href="{!! the_permalink() !!}">
  
                        <div class="jobButton">
                            {!! the_title() !!}
                            <div class="arrow">
                            </div>
                        </div>
                    
                    </a>               
                </div>
            </div>
            

            @php
            endwhile; 
else:
  echo "No post found";
  endphp;
            wp_reset_postdata(); 
 @endphp 

【讨论】: