WordPress. Вывод значения (текста) в краткую новость в зависимости от тега новости.

12
БОЧ рВФ 260602
На сайте с 27.01.2010
Offline
146
611

Приветствую.

Строю сайт с онлайн радио станциями.

Имеем на сайте:

1. Категории (Поп музыка, Джаз, Рок и т.д.) Каждая новость (радиостанция) принадлежит какой либо категории.

2. Теги (Москва, Самара, Казань, Новгород и т.д.) Теги обозначают города вещания радиостанции. Теги добавляются в каждую новость.

На главной странице сайта соответственно меню с Категориями и с Городами (тегами), т.е. юзер может отсортировать Радио по жанру радио музыки (категории) и Городу вещания (тегу)

Но есть нюанс..

У каждой радиостанции в каждом городе вещания своя частота вещания. 

Собственно вопрос:

При переходе в меню в какого либо города вещания, например Москву (site.ru/tag/moskva/), откроются радио станции, которым присвоен тег Москва (т.е. они вещают в городе Москва). Нужно в краткую новость добавить частоту вещания. Но данная частота в каждом городе своя уникальная.

Т.е. для каждой новости нужно добавить конструкцию типа: если tag равен Москва, то print 105,2 FM,  если tag равен Самара, то print 107,5 FM, и т.д.

Собственно как это можно реализовать в WP без лишнего геморроя?


iworkshop
На сайте с 22.12.2008
Offline
188
#1

Частота вещания это что? Произвольное поле? Думаю ACF может решить вашу проблему. У него вроде есть вывод произвольных полей согласно условиям.

Но вообще не факт, у вас же по сути новость(радиостанция) прикрепляется ко всем тегам где вещает. Тогда я бы копал через шаблон вывода тегов и проверял. Проверял бы страницу через is_tag(),  далее через get_queried_object() узнавал бы id\название метки и в зависимости от этого бы фильтровал произвольное поле.

XMLRiver - прямая выдача Google и Яндекс через API
БОЧ рВФ 260602
На сайте с 27.01.2010
Offline
146
#2
iworkshop #:

Частота вещания это что? Произвольное поле? Думаю ACF может решить вашу проблему. У него вроде есть вывод произвольных полей согласно условиям.

Но вообще не факт, у вас же по сути новость(радиостанция) прикрепляется ко всем тегам где вещает. Тогда я бы копал через шаблон вывода тегов и проверял. Проверял бы страницу через is_tag(),  далее через get_queried_object() узнавал бы id\название метки и в зависимости от этого бы фильтровал произвольное поле.

ну да что то такое и нужно сделать :) вопрос в том, что не знаю как это технически реализовать.. я делал подобное на DLE.. создавал множество доп полей - каждое поле - это город вещания, значение поля - частота вещания, при добавлении новости (радиостанции) на сайт, заполняются эти доп поля с указанием частот вещания... и когда я заходил в категорию к примеру Москва, то у короткой записи выводилось значение доп поля Москва( т.е. выводилась частота вещания)...

проблема тут в том, что городов вещания у нас в стране очень много - это единственное что меня останавливает от такого решения - я офигею от рутинной работы, когда каждой новости (радиостанции) нужно будет указать категорию (города вещания).. если станция Русское радио вещает к примеру в 300 городах России, то это нужно новость Русское радио присвоить 300 категорий (городов) + все 300 доп полей заполнить и указать частоты вещания..

п.с. ну я счас погуглю вашу инфу.. покумекаю..

БОЧ рВФ 260602
На сайте с 27.01.2010
Offline
146
#3
iworkshop #:

Частота вещания это что? 

ну это текстовое поле типа "102,5 FM"

iworkshop
На сайте с 22.12.2008
Offline
188
#4

Да, это адовое количество ручной работы.

Но при беглом взгляде я не вижу других вариантов. Забивать города(те которые в метках) в произвольные поля - придётся.


Вот наполнение данных в теории можно облегчить. Если у вас есть списки город:частота(формат не важен) для каждой радиостанции я бы копал в сторону автоматического обновления записей.

Если радиостанций не сотни можно к примеру привязать функцию к

add_action( 'acf/save_post', 'имя_функции', 5 );

Выполнить какую нибудь проверку на заполнение полей и сверку их с списками частоты. Ну и потом руками пройтись и обновить все записи.

Или можно получить все записи типа Радиостанция через WP_Query и потом пройтись по ним

wp_update_post();

Посмотрел, для того же ретро FM есть списки https://retrofm.ru/index.php?go=City

т.е. задача решаема. Копайте)

Города вещания — Ретро FM 88,3
Города вещания — Ретро FM 88,3
  • Ретро FM
  • retrofm.ru
Сайт радиостанции 'Ретро FM'
G9
На сайте с 07.06.2021
Offline
4
#5

Проверить на php, данный пост (запись, новость) имеет отношение к тегу kino или нет:

<?php 
if( has_tag('kino') )
        echo "У текущего поста есть метки";
?>

Вывести текст ко все постам (запись, новость):

$content = get_the_content('читать далее');
echo apply_filters( 'the_content', $content );

Если объединить эти два кода, то можно, выводить к определенному посту (записи, новости), по тегу, определенный текст.

W1
На сайте с 22.01.2021
Offline
115
#6
gh956 #:
Проверить на php, данный пост (запись, новость) имеет отношение к тегу kino или нет

Какое кино? Тут про радио тема.

Мой форум - https://webinfo.guru –Там я всегда на связи
W1
На сайте с 22.01.2021
Offline
115
#7
БОЧ рВФ 260602 :
Собственно как это можно реализовать в WP без лишнего геморроя?

В принципе, можно тупо зашить в шаблон вывода новости массив с городами и частотами. Хоть это и не вордпрессно-феншуйно.

G9
На сайте с 07.06.2021
Offline
4
#8
<?php 
if( has_tag('radio') )
        echo "У текущего поста есть метки";
?>
<?php 
if( has_tag('kino') )
        echo "У текущего поста есть метки";
?>
<?php 
if( has_tag('my') )
        echo "У текущего поста есть метки";
?>

Там любое слово можно вставить, как "название нужного тега".

W1
На сайте с 22.01.2021
Offline
115
#9
gh956 #:
Там любое слово можно вставить, как "название нужного тега".

Ну – и?.. Дальше-то что? Какие предложения?

G9
На сайте с 07.06.2021
Offline
4
#10

Отдельное значение, отдельной радиостанции к отдельному городу....это можно сделать через создание в плагине для wordpress, при установке этого плагина php..:

 <?php 

function yocommerce_install() {  // install plugin

  global $wpdb;

   // create table "settings 2"

$table = $wpdb->prefix . "plugin_yocommerce_settings_2";

  if($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) {  

        $sql = "CREATE TABLE `" . $table . "` (

          `setting_id` int(9) NOT NULL AUTO_INCREMENT,

   `setting_theme_color` varchar(150) NOT NULL,

          UNIQUE KEY `id` (setting_id)

        ) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;";

          require_once(ABSPATH . 'wp-admin/includes/upgrade.php');

          dbDelta($sql);

}

}

register_activation_hook( __FILE__,'yocommerce_install');

Это, код показывающий установку таблицы mysql при установке плагина для wordpress из админки wordpress. Его нужно модернизировать, под нужные ТС'у поля в таблице mysql.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий