Как исправить ошибку в WordPress Попытка получить свойство 'ID' необъекта в функциях. php - PullRequest
0 голосов
/ 31 января 2020

Я создал пользовательский функционал в WooCommerce, и речь идет о фильтрации. Если вы выберете какой-либо фильтр на боковой панели интернет-магазина, а затем перейдете на страницу отдельного продукта, у вас появятся навигационные стрелки на основе вашей предыдущей фильтрации выбора. Он работает нормально, но только в указанном c продукте я получаю сообщение об ошибке

Примечание: при попытке получить свойство ID объекта не в объекте. php в строке 355

function filter_single_post_pagination($output, $format, $link, $post){
    $variable = $_GET;

    if (count($variable) == 0) {
        $url       = get_permalink($post->ID);
        if (isset($post->ID)) {
            if('previous_post_link' === current_filter()){
                return "<a href='$url' rel='next'>→</a>";
            } else {
                return "<a href='$url' rel='prev'>←</a>";
            }
        } 
    }

    else {
        $pids = array();
        $product_ids = "";
        foreach ($variable as $key => $value) {
            $product_ids .= $key."&";
            array_push($pids, $key);
        }

        global $product;
        $id = $product->get_id();
        $key_val = array_search($id,$pids);
        $custom_link = "?".$product_ids;


        if (isset($pids[$key_val+1])) {
            if('previous_post_link' === current_filter()){
                $rel  = 'next';
                $next_url       = get_permalink($pids[$key_val+1]);
                return "<a href='$next_url.$custom_link' rel='$rel'>→</a>";
            }
        }

        if (isset($pids[$key_val-1])) {
            if('next_post_link' === current_filter()){
                $rel  = 'prev';
                $previous_url   = get_permalink($pids[$key_val-1]);
                return "<a href='$previous_url.$custom_link' rel='$rel'>←</a>";
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...