Поддержка Проблемы и решения про функцию get_post

  • Решено adward

    (@idiatulla)


    Здравствуйте.

    У меня магазин на WooCommerce и неважный опыт разработки на PHP.

    Встала задача — взять родительский Продукт на странице текущего Продукта, а так же вставить ссылку на родительский Продукт (и Title)

    Текущий продукт на странице находится в переменной $product, как я понял.
    Чтобы взять ID родителя, использую функцию get_parent()

    // Запрашивает родительский ID
    $parentElementID = $product->get_parent();

    Далее, если переменная содержит ноль — значит у продукта нет родителя, если число — то это и есть ID родителя (проверял)

    Следом я пытаюсь взять объект Пост, зная его ID

    if($parentElementID>0){
     $parentPost = get_post( $parentElement );
    
     $pID = $parentPost->ID;
     //	Возвращается ID текущего продукта
     echo $pID;	
    
     $Ptitle = $parentPost->post_title;
     //	Возвращается TITLE текущего продукта
     echo $Ptitle;	
    
    }

    то есть, get_post( $parentElement ); мне возвращает почему то Текущий Пост (или если хотите Продукт) но никак не родительский.

    У меня есть подозрение на то, что я пытаюсь вызвать get_post может быть внутри какого нибудь цикла там, или может у него есть какое нибудь ограничение, не могу понять… Помогите разобраться plz

    А ещё лучше — если кто нибудь обладает куском кода «как взять родительский элемент у группированного, зная текущий ID» — я буду безмерно благодарен.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    то есть, get_post( $parentElement ); мне возвращает почему то Текущий Пост (или если хотите Продукт) но никак не родительский.

    Переменная $parentElement в вашем фрагменте не определена, попробуйте заменить её на $parentElementID.

    О как!

    В общем, слона то мы и не заметили. Спасибо (надо высыпаться)

    Пока колдовал, кстати, добрый друг-разработчик подсказал решение.
    Может кому пригодится:

    $parent_title = get_the_title($product->get_parent());
    echo $parent_title;   // Получили титл родителя
    
    $permalink = get_permalink( $product->get_parent() );
    echo $permalink;   // Получили URL родителя

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «про функцию get_post» закрыта для новых ответов.