1

このループを実行しようとしていますが、無限になります

<li>タグにいくつかの結果を表示する必要があるだけです。これを行うために を編集しloop.phpていますが、関数if(function_exists('wp_custom_fields_search')) wp_custom_fields_search();は作成した 1 つのプラグインのフォームを返すだけです。

手伝ってもらえますか?

<?php
        $queryA = new WP_Query($args1);
        $queryB = new WP_Query($args2);

        $args1 = array (
        'orderby' => 'title', 
        'order' => 'ASC', 
        'category_name' => 'lojas',
        'posts_per_page' => '-1',
        );

        $args2 = array (
        'orderby' => 'title', 
        'order' => 'ASC', 
        'category_name' => 'gastronomia',
        'posts_per_page' => '-1',
        );  


        if ($queryA->have_posts()) {
            if(function_exists('wp_custom_fields_search')) wp_custom_fields_search();
            while($queryA->have_posts()) : $queryA->the_post();
                echo '<li>';
                echo '<span class="nome">';
                the_title();
                echo '</span>';
                echo '<span class="end">';
                echo get('endereco');
                echo '</span>';
                echo '<span class="tel">';
                echo get('telefone');
                echo '</span>';
                echo '</li>';
            endwhile;
        } 


        if ($queryB->have_posts()) {
            if(function_exists('wp_custom_fields_search')) wp_custom_fields_search('preset-1');
            while($queryB->have_posts()) : $queryB->the_post();
                echo '<li>';
                echo '<span class="nome">';
                the_title();
                echo '</span>';
                echo '<span class="end">';
                echo get('endereco');
                echo '</span>';
                echo '<span class="tel">';
                echo get('telefone');
                echo '</span>';
                echo '</li>';
            endwhile;
        }       


    ?>
4

1 に答える 1

0

私はあなたのコードから、無限ループを引き起こす可能性のあるものを直接見ないことを認めなければなりませんが、コードを大幅に減らすことができ、エラーを見つけるのに役立つ可能性があります:

$defaultArgs = array (
    'orderby' => 'title', 
    'order' => 'ASC', 
    'posts_per_page' => '-1',
);
$queries = array(
    array(array('category_name' => 'lojas'), NULL),
    array(array('category_name' => 'gastronomia'), 'preset-1'),
);    
$customFiledsSearch = function_exists('wp_custom_fields_search');
foreach ($queries as $query)
{
    list($args, $param) = $query;
    $wpQuery = new WP_Query($args + $defaultArgs);
    if ($wpQuery->have_posts()) 
    {
        if ($customFiledsSearch)
        {
            wp_custom_fields_search($param);
        }
        while ($wpQuery->have_posts()) : $wpQuery->the_post())
        {
            echo '<li>', 
                   '<span class="nome">',
                     the_title();
                   '</span>',
                   '<span class="end">', 
                     get('endereco'), 
                   '</span>', 
                   '<span class="tel">', 
                     get('telefone'), 
                   '</span>', 
                 '</li>';

        }
    }
}

多分これはあなたがあなたのエラーを見つけるのを助けるでしょう。

于 2012-04-10T20:50:39.610 に答える