如何正确关闭查询,使其不会被其他查询拦截?

时间:2019-01-21 00:04:21

标签: php wordpress

在我的模板部分中,我使用的函数看起来像这样:

function job_listings($id = null) {
$output = '';

$args = array(
    'post_type' => 'job-listings',
);

$loop = new WP_Query($args);

while($loop->have_posts()) {
    $loop->the_post();

    if($id == get_the_id()) {
        $output .= '<option selected value="'.get_the_ID().'">'.get_the_title().'</option>';
    } else {
        $output .= '<option value="'.get_the_ID().'">'.get_the_title().'</option>';
    }

}

wp_reset_postdata();

return $output;

}

...而且我一直很难意识到问题出在哪里,但是现在我看到,每次我尝试使用the_ID()get_the_ID()后,ID上方的功能都会从特定功能打印ID我没有得到,因为我认为wp_reset_postdata()正在关闭查询。

例如:

<form id="job-apply-<?php the_ID(); ?>" action="" method="post" autocomplete="off" data-url="<?php echo admin_url('admin-ajax.php'); ?>">
            <div class="form-group">
                <label for="full-name">Full Name:</label>
                <input type="text" class="form-control form-control-lg" id="full-name">
            </div>
            <div class="form-group">
                <label for="email">Email address:</label>
                <input type="email" class="form-control form-control-lg" id="email">
            </div>
            <div class="form-group">
                <label for="sel1">Select Position:</label>
                <select class="form-control form-control-lg" id="job-position">
                    <?php job_listings(get_the_ID()); ?>
                </select>
            </div>
            <div class="form-group">
                <label class="control-label">Upload Resume</label>
                <input type="file" class="filestyle" data-buttonText="Select a File" id="resume-<?php the_ID(); ?>">
            </div>
            <div class="form-group">
                <label for="comment">Additional Comments:</label>
                <textarea class="form-control" rows="5" id="comment"></textarea>
            </div>
            <button type="submit" class="btn btn-default btn-lg">Apply</button>
        </form>
form id="job-apply-<?php the_ID(); ?>"的ID中的

像应该打印的那样显示当前帖子的ID,但是在job_listings() { {1}}打印上述函数查询中的最后一个ID。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在if语句中更改ID。将get_the_id()更改为$ loop-> ID,使用$ loop中的ID。

 <asp:TextBox ID="txtCustomer" class="form-control" runat="server"></asp:TextBox>
                                                        <asp:RequiredFieldValidator ID="rfvName" runat="server"
                                                            ControlToValidate="txtCustomer" ForeColor="Red"
                                                            ToolTip="Please enter name" ValidationGroup="Validate" Display="Dynamic">* Required</asp:RequiredFieldValidator>

<asp:Button ID="btnSave" CssClass="btn  btn-default" runat="server" Text="Save" ToolTip="Save Record" ValidationGroup="Validate" OnClick="btnSave_Click"/>
<asp:Button ID="btnClear" CssClass="btn  btn-default" runat="server" Text="Clear" ToolTip="Clear / Refresh" OnClick="btnClear_Click" />
<asp:Button ID="btnClose" CssClass="btn  btn-default" runat="server" Text="Close" ToolTip="Go To Main form." OnClick="btnCancle_Click" />