• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Решено Отобразить на вкладке Woocommerce посты со страницы

SlavaHacker32

Новичок
Здравствуйте, подскажите какой-то плагин, который бы позволял в одной из вкладок на странице товара, отобразить посты, опубликованные на одной из страниц сайта.

К примеру, есть товар, телефон конкретной модели и ТМ. И есть страница с новостями, где можно при помощи меток и фильтров выбрать все новости связанные с этой моделью телефона. Так вот, как вывести этот отфильтрованный массив постов во вкладке товара?

Пытался юзать Woo Tabs Pro и шорткоды, но то ли шорткод неправильный, то ли я чего-то наплутал, и в итого ничего не получилось, поскольку шаблон разрывало.
 

SlavaHacker32

Новичок
Может быть, как вариант, не обязательно во вкладке. Может быть есть плагин позволяющий изменять шаблон страницы товара используя, например, Visual Composer или аналоги. И таким образом установить нужный блок с нужной мне информацией, подобно лендингу.
 

SlavaHacker32

Новичок
В общем, плагин я нашел - WooCommerce Single Product Page Builder. Осталось только правильно прописать Data Source, он же источник постов, фильтр (шорткод). Подскажите как это правильно сделать, чтобы отображались новости связанные с конкретным товаром. К примеру, по меткам: новости и название товара, как это самое название правильно прописать, чтобы не искало посты с метками "новости" и "product", а вместо product подставлялось конкретное имя.
 

artemkomarov

Специалист
Местный
В общем, плагин я нашел - WooCommerce Single Product Page Builder. Осталось только правильно прописать Data Source, он же источник постов, фильтр (шорткод). Подскажите как это правильно сделать, чтобы отображались новости связанные с конкретным товаром. К примеру, по меткам: новости и название товара, как это самое название правильно прописать, чтобы не искало посты с метками "новости" и "product", а вместо product подставлялось конкретное имя.
Тут так просто не подскажешь. так как задача комплексная вам необходимо разработать аддон для Visual Composer или свой шорткод в котором и прописать все условия зависимости и вызовы постов исходя из всего этого вам к фрилансерам вообщем.
 

galiulinr

Опытный
Местный
Тут ничего сложного
Делаем следующим образом. Вставляем этот код в функцию темы:
Код:
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
    $tabs['new_tab'] = array(
        'title'     => 'Новости',
        'priority'     => 50,
        'callback'     => 'woo_new_product_tab_content'
    );
    return $tabs;
}
function woo_new_product_tab_content() {
    global $post;
    $idnews = get_post_meta($post->ID, 'news_mob', true);
    $post = get_post($idnews);
    echo '<h2>'.$post->post_title.'</h2>';
    echo '<div>'.$post->post_content.'</div>';
}
Он создает новую вкладку "Новости"
Далее устанавливаем плагин Advanced Custom Fields , создаем Группу полей , например "Вкладка Новости", в окне "Местоположение" "Правило" выбираем "Тип записи" равно "product" (т.е. создаем условие вывода нашего поля на странице редактирования товара. Ниже в окне "Опции" выбираем Позиция - Нормальное, Стиль- Seamless. Далее переходим к созданию поля.
Для этого жмем на "+ Добавить поле" , в поле "Ярлык поля" пишем "Новости", в поле "Имя поля" пишем "news_mob" (мы это имя указали в коде функции). "Тип поля" - выбираем "Объект записи". В "Тип записи" можем выбрать "Все" тогда можно будет любую страницу добавить в это вкладку, либо если если нужны только Записи то "post" . Все нажимаем обновить. Переходишь к товару и в низу в поле "Новости" выбираем какую запись прикрепить. Обновляем товар. Переходим к просмотру товара нажимаем на вкладку Новости и радуемся что у нас все получилось.
Это я описал принцип, думаю не сложно вывести список title записей с определенной рубрики или метки. Я использую Advanced Custom Fields и он решает много различных задач, главное подойти творчески.
 

artemkomarov

Специалист
Местный
Это я описал принцип, думаю не сложно вывести список title записей с определенной рубрики или метки. Я использую Advanced Custom Fields и он решает много различных задач, главное подойти творчески.

полагаю вы правы. установить плагин, прописать кастомные мета поля, затем вручную к каждому товару назначить список материал и прописать вывод полей в шаблоне гораздо проще одного шорткода с кодом в 10 строчек который все это будет делать автоматически.
 

SlavaHacker32

Новичок
Тут ничего сложного
Делаем следующим образом. Вставляем этот код в функцию темы:
Код:
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
    $tabs['new_tab'] = array(
        'title'     => 'Новости',
        'priority'     => 50,
        'callback'     => 'woo_new_product_tab_content'
    );
    return $tabs;
}
function woo_new_product_tab_content() {
    global $post;
    $idnews = get_post_meta($post->ID, 'news_mob', true);
    $post = get_post($idnews);
    echo '<h2>'.$post->post_title.'</h2>';
    echo '<div>'.$post->post_content.'</div>';
}
Он создает новую вкладку "Новости"
Далее устанавливаем плагин Advanced Custom Fields , создаем Группу полей , например "Вкладка Новости", в окне "Местоположение" "Правило" выбираем "Тип записи" равно "product" (т.е. создаем условие вывода нашего поля на странице редактирования товара. Ниже в окне "Опции" выбираем Позиция - Нормальное, Стиль- Seamless. Далее переходим к созданию поля.
Для этого жмем на "+ Добавить поле" , в поле "Ярлык поля" пишем "Новости", в поле "Имя поля" пишем "news_mob" (мы это имя указали в коде функции). "Тип поля" - выбираем "Объект записи". В "Тип записи" можем выбрать "Все" тогда можно будет любую страницу добавить в это вкладку, либо если если нужны только Записи то "post" . Все нажимаем обновить. Переходишь к товару и в низу в поле "Новости" выбираем какую запись прикрепить. Обновляем товар. Переходим к просмотру товара нажимаем на вкладку Новости и радуемся что у нас все получилось.
Это я описал принцип, думаю не сложно вывести список title записей с определенной рубрики или метки. Я использую Advanced Custom Fields и он решает много различных задач, главное подойти творчески.

Благодарю за ответ, но проблемка все равно осталась. Сделал все по вашему примеру, список записей, страниц и прочего отображается в редакторе товара, вот только на самой странице товара записи не отображаются, вернее отображается, одна, дефолтная - Привет мир. Хотя ее нет даже в списке записей. Может у самих записей (новостных постов) следует, что-то прописывать?
 

galiulinr

Опытный
Местный
вот только на самой странице товара записи не отображаются, вернее отображается, одна, дефолтная - Привет мир. Хотя ее нет даже в списке записей. Может у самих записей (новостных постов) следует, что-то прописывать?
Создайте рубрику Новости , добавьте туда запись, и попробуйте прикрепить к товару.
 
Сверху Снизу