Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вопрос? Убрать в noindex,nofollow неопубликованные новости

Тема в разделе "Вопросы- ответы", создана пользователем TOPSALE, 5 июн 2020.

05.06.20 в 02:45
02.07.20 в 13:14
10
2.320
0
  1. TopicStarter Overlay
    TOPSALE

    PRO Users

    Регистрация:
    12 фев 2017
    Сообщения:
    83
    Лучших ответов:
    0
    Рейтинги:
    +6 / 3 / -0
    Как убрать в noindex,nofollow неопубликованные новости на главной.

    В functions.php прописал

    Код:
    if ( allow_main = 0 ) $disable_index = "\n<meta name=\"robots\" content=\"noindex,nofollow\" />";
    Не помогло, скорее всего в коде ошибка, поправьте пожалуйста. Спасибо.
     
  2. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
  3. TopicStarter Overlay
    TOPSALE

    PRO Users

    Регистрация:
    12 фев 2017
    Сообщения:
    83
    Лучших ответов:
    0
    Рейтинги:
    +6 / 3 / -0
    byroot а более простыми правками в движке, чтобы пункт запретить индексации распространялось на неопубликованные новости?
     
  4. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
    TOPSALE что мешает показать все неопубликованные новости и потом выделить их все и запретить? Вообще как бы надобность этого действия не понятна, т.к. неопубликованные новости видны только админу, ни пользователь ни пс никак не увидят содержимое неопубликованных новостей.
     
  5. TopicStarter Overlay
    TOPSALE

    PRO Users

    Регистрация:
    12 фев 2017
    Сообщения:
    83
    Лучших ответов:
    0
    Рейтинги:
    +6 / 3 / -0
    в 11 версии dle не работает, только после 13 версиии :с
     
  6. TopicStarter Overlay
    TOPSALE

    PRO Users

    Регистрация:
    12 фев 2017
    Сообщения:
    83
    Лучших ответов:
    0
    Рейтинги:
    +6 / 3 / -0
  7. TopicStarter Overlay
    TOPSALE

    PRO Users

    Регистрация:
    12 фев 2017
    Сообщения:
    83
    Лучших ответов:
    0
    Рейтинги:
    +6 / 3 / -0
  8. TopicStarter Overlay
    TOPSALE

    PRO Users

    Регистрация:
    12 фев 2017
    Сообщения:
    83
    Лучших ответов:
    0
    Рейтинги:
    +6 / 3 / -0
    Короче, вот решение, но это лишний запрос к БД:
    Открываем /engine/engine.php и ищем 962 строку, вставляем следующий код:
    Код:
    $allow_main = $db->super_query( "SELECT allow_main FROM " . PREFIX . "_post WHERE id={$newsid}");
    Ищем <meta name="description" content="{$metatags['description']}" />{$disable_index} и вставляем после следующий код:
    Код:
    if (((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] != 'адрес вашей главной страницы' and !$allow_main["allow_main"]) {
    
        $metatags .= <<<HTML
    
    <meta name="robots" content="noindex,nofollow" />
    HTML;
    
    }
     
    #8 TOPSALE, 30 июн 2020
    Последнее редактирование: 2 июл 2020
  9. TeraMoune

    TeraMoune Бывалый

    Регистрация:
    6 апр 2019
    Сообщения:
    310
    Лучших ответов:
    3
    Рейтинги:
    +130 / 9 / -0
    Находясь в новости в модуле уже есть запрос в массиве в котором имеются все необходимые данные. А модуль show.full.php подключается и исполняется заранее, еще до того момента где якобы делается еще один запрос. Так почему не протянуть переменную из show.full.php до нужного места ? Если массив удаляется, а он удаляется. То до строчки unset($row) нужно успеть перехватить и создать новую переменную. $new_allow_main = $row['allow_main']. Затем уже можно её использовать где угодно и где угодно до тех пор пока Вы сами не решите её уничтожить.

    Так же сделано с переменной $news_id, которая создаётся для всяких нужд за пределами окружения и применяется в других файлах, которую Вы и используете в выборке sql запроса.
     
    #9 TeraMoune, 1 июл 2020
    Последнее редактирование: 1 июл 2020
  10. TopicStarter Overlay
    TOPSALE

    PRO Users

    Регистрация:
    12 фев 2017
    Сообщения:
    83
    Лучших ответов:
    0
    Рейтинги:
    +6 / 3 / -0
    Обновил код, чтобы главная страница не была в noindex.

    TeraMoune Я не особый знаток php, делаю, что умею. Если есть готовый код, который лучше, то напишите для братьев по оружию.
     
  11. TeraMoune

    TeraMoune Бывалый

    Регистрация:
    6 апр 2019
    Сообщения:
    310
    Лучших ответов:
    3
    Рейтинги:
    +130 / 9 / -0
    TOPSALE, Ну так я вроде бы и написал всё, специально еще выделил ключевые моменты. Ну давайте повторим, открываете show.full.php, ищите там объявление $news_id. Объявляете ниже\выше аналогичную переменную только называете её как-то иначе, присваиваете значение переменной $row['allow_main'].

    После в другом файле где был запрос, в условии используете объявленную переменную.

    Всё условие касательно определения главной меняете на $dle_module != 'main'.
     
Яндекс.Метрика