[Помогите] Вывод функции в определенные рубрики, страницы...

Тема в разделе "Wordpress", создана пользователем goldyman, 29 дек 2015.

Модераторы: Sorcus
  1. goldyman

    goldyman

    Регистр.:
    6 мар 2008
    Сообщения:
    177
    Симпатии:
    29
    Всех с наступающем НГ! Суть проблемы: Wordpress 4.4. Информация о дате размещения и авторе выводится в каждом посте в каждой рубрике. Я нашел файл с этой функцией template-tags.php, но так как особо не силен в php, не знаю как именно отключить ее вывод для ненужных постов, а включить для нужных. Вот код:



    Какое условие и куда нужно добавить, чтобы решить эту задачу?
     
  2. Unak

    Unak Создатель

    Регистр.:
    27 июл 2014
    Сообщения:
    42
    Симпатии:
    18
    Ищите где вызывается функция cas_posted_on в вашей теме и ее помещайте в условие. Вариаций может быть очень много.

    PHP:
    <?php
        
    if ($post_id == 1000 /* Нужное условие */) {
            
    cas_posted_on();
        } else {
        
    //...Можно опустить или влепить заглушку какую нить..
        
    }
    ?>
     
    Последнее редактирование: 29 дек 2015
    goldyman нравится это.
  3. goldyman

    goldyman

    Регистр.:
    6 мар 2008
    Сообщения:
    177
    Симпатии:
    29
    А как сделать, чтобы посты, допустим, рубрики Новости, выводились с датой и подписью, а всех других без данных? Я сделал для каждой рубрики отдельный файл, типа, category-slug. Эта функция выводится всего в трех файлах. Я так понял, нужно в этих трех файлах прописать условие, где именно выводить данные, а для остальных запретить. Подскажите, пожалуйста, как лучше это сделать...
     
    Последнее редактирование: 29 дек 2015
  4. Unak

    Unak Создатель

    Регистр.:
    27 июл 2014
    Сообщения:
    42
    Симпатии:
    18
    Можно сделать два разных шаблона post-entry (У вас наверное другой)
    Типа post-entry.php и post-entry-wo-date.php в одном выводить дату а в другом нет, соответственно в category-(slug) использовать либо один либо другой.
    Я хз что у вас за тема и какие там используются шаблоны) но думаю суть вы уловили.

    Или просто в одном шаблоне:
    PHP:
    <?php
     
    if (($cat get_query_var('cat'))) {
      
    $yourcat get_category ($cat);
      
    $category_slug $yourcat->slug;
    } else {
      
    $category_slug NULL;
    }
    if (
    $category_slug == 'news') {
        
    cas_posted_on();
     } else {
        
    //...Можно опустить или влепить заглушку какую нить..
     
    }
    ?>
     
    goldyman нравится это.
  5. goldyman

    goldyman

    Регистр.:
    6 мар 2008
    Сообщения:
    177
    Симпатии:
    29
    Я сделал так в том месте, шаблона, где нашел код функции:

    Код:
    <?php
    if ($category_slug == 'news') { cas_posted_on();
    } else {
      
    }
    ?>
    Теперь данные пропали из рубрик, но в постах остались, там другой уже шаблон... Что я неправильно сделал?


    Сорри, все верно, я просто не добавил верхнюю часть кода... Теперь работает, вроде. Спасибо.
     
  6. Unak

    Unak Создатель

    Регистр.:
    27 июл 2014
    Сообщения:
    42
    Симпатии:
    18
    Там другой шаблон наверное, если я вас правильно понял. single.php и ему подобные ковыряйте, может еще где используется cas_posted_on.
     
  7. goldyman

    goldyman

    Регистр.:
    6 мар 2008
    Сообщения:
    177
    Симпатии:
    29
    У меня только три шаблона, где я нашел этот код: content.php, content-search.php и content-single.php. Все другие файлы кода этой функщии не имеют. Я вставил код, что вы посоветовали... Данные в категории новости остались, а в других исчезли, однако, когда переходишь на саму новость, данных там тоже нет. Может я что-то делаю не так?
     
  8. Unak

    Unak Создатель

    Регистр.:
    27 июл 2014
    Сообщения:
    42
    Симпатии:
    18
    Это скорей всего потому что в single не сработает конструкция $cat = get_query_var('cat');

    Замените:
    PHP:
    if (($cat get_query_var('cat'))) {
    $yourcat get_category ($cat);
    $category_slug $yourcat->slug;
    }
    на
    PHP:
    $category get_the_category();
    $category_slug = (isset($category[0]->cat_name) && !empty($category[0]->cat_name)  ? $category[0]->cat_name NULL);
    ЗЫ: Имейте ввиду, я ничего не проверяю на синтаксические ошибки, сейчас нет такой возможности, пишу прямо тут по памяти.
     
  9. goldyman

    goldyman

    Регистр.:
    6 мар 2008
    Сообщения:
    177
    Симпатии:
    29
    К сожалению, этот код тоже не работает - данные о дате и авторе нигде не отображаются, ни в новостях, ни в других рубриках...
     
  10. Unak

    Unak Создатель

    Регистр.:
    27 июл 2014
    Сообщения:
    42
    Симпатии:
    18
    Может $category[0]->cat_name нужно заменить на $category[0]->slug
    Посмотрите в print_r($category);
    Это сработает только если статья находится только в одной категории.
     
    goldyman нравится это.