Поддержка Проблемы и решения не цепляется метка к записи

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

    К 8 записям прицепил метку «веранда».
    Вывожу все посты з данной меткой (get_posts(tag)), выводит только три.
    Захожу в админку, смотрю метку «Веранда», напротив нее красуется число 3. Жму на тройку, чтобы узнать к каким статьям метка не прицепилась, а оно мне открывает список всех восьми статей с меткой «Веранда». Почему так?

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Нашел суть проблема. Видимо, не цепляется метка только к статьям который имеют произвольный статус поста. Это можно как-то решить?

    Вот мой код для регистрации статуса:

    //регистрация произвольного статуса поста
    function true_status_unread(){
    	register_post_status( 'only_reg', array(
    		'label'                     => 'Для зарегистрированных',
    		'public'                    => true
    	) );
    }
     
    add_action( 'init', 'true_status_unread' );
    
    //Добавление произвольного статуса поста в админку
    function true_append_post_status_list(){
    	global $post;
    	$optionselected = '';
     	$statusname = '';
    	if( $post->post_type == 'post' ){
    		if($post->post_status == 'only_reg'){
    			$optionselected = ' selected="selected"';
    			$statusname = "$('#post-status-display').text('Для зарегистрированных');";
    		}
    		/*
    		 * Код jQuery мы просто выводим в футере
    		 */
    		echo "<script>
    		jQuery(function($){
    			$('select#post_status').append('<option value=\"only_reg\"$optionselected>Для зарегистрированных</option>');
    			$statusname
    		});
    		</script>";
    	}
    }
    add_action('admin_footer-post-new.php', 'true_append_post_status_list'); // страница создания нового поста
    add_action('admin_footer-post.php', 'true_append_post_status_list'); // страница редактирования поста
    

    а кто вас так научил выводить записи по метке?
    странно, что подобный синтаксис вообще не выдал ошибку.

    у https://codex.wordpress.org/Template_Tags/get_posts
    есть параметр ‘post_status’ и по умолчанию он равен ‘publish’

    Мне понадобился еще один параметр, произвольный. Чтобы он был как «publish», только с другим назваем, чтобы при выводе постов с определенной рубрики посты с произвольным статусом выглядили немного по другому. Потому я создал свой статус.

    Я так понял, произвольный статус нельзя сделать на подобии «publish» ?

    а зачем вы придумали такой велосипед, когда существует миллион различных способов стилизовать записи из какой-то конкретной рубрики? тупо задайте в диве оформления записи ярлык рубрики и стилизуйте его через css.

    У меня такая задача: сделать так, чтобы можно было в админке отметить те статьи, которые кликабельные только зарегистрированным пользователям. Все статьи с одной рубрики, но некоторые должны быть кликаьбельны для всех, а другие только для зарегынных. Я это сделал через пост статус. Другого ничего мне в голову не пришло, чтобы можно было в админке легко присобачить какое-то отличие посту, и чтобы это отличие можно было идентифицировать во время вывода постов.

    Я так понимаю сделать свой пост статус аналогичный publish нельзя?

    чтобы при выводе постов с определенной рубрики посты с произвольным статусом выглядили немного по другому. Потому я создал свой статус.

    Для этого существуют форматы постов и ещё много других нормальных способов.

    Если возникает желание плодить сущности — с большой долей вероятности Вы делаете что-то неправильно (это касается не только ВП, а вообще всего и везде).

    почему нельзя, можно.
    только циклы вывода придется везде менять.

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

    в админке отметить те статьи, которые кликабельные только зарегистрированным пользователям

    Что значит «отметить» и «кликабельные»?
    И как это не зарегистрированные попадут в админку?

    • Ответ изменён 5 лет, 5 месяцев назад пользователем SeVlad.
    Модератор Юрий

    (@yube)

    Я так понимаю сделать свой пост статус аналогичный publish нельзя?

    Можно. Но введение нового статуса обычного поста (если мы говорим об одном и том же — о post_status) повлечет за собой необходимость серьезного вмешательства в логику работы движка, что вряд ли оправдано для такой мелочи как «выглядили немного по другому«.

    @sevlad , невнятно видимо пояснил. Есть рубрика «Отели». В ней список статей. Этот список отелей выводится на главную. Клиент хочет сделать так, чтобы он мог в этой рубрике зайти в любую статью, и сделать ее некликабельной при выводе на главной странице. Грубо говоря, ссылка перестала работать и адрес у href пропал.

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

    на счет формата записи я не знал, посмотрю.

    еще раз повторю — произвольное поле записи.
    создаете поле «clickable» и ставите при редактировании записи туда true или false, а в цикле вывода записей читаете значение этого произвольного поля и в зависимости от него выводите или не выводите ссылку на запись.

    @flector, Спасибо, это то что надо.

    и сделать ее некликабельной при выводе на главной странице. Грубо говоря, ссылка перестала работать и адрес у href пропал.

    Стандартный формат «заметка» с той разницей, что заголовок всё же выводится, но без ссылки. Аналогично можно поступить и со стандартным форматом, сделав копию, но убрав из заголовка ссылку.

    Кроме того в 4,7 появилась возможность задавать кастомные шаблоны постов аналогично шаблонам страниц

    Ну и вариант Flectora тоже вполне себе. Только если для клиента — нужно ещё оформить метабоксы, что бы он мог отмечать, а не выбирать нужно поле и писать его значение вручную. (лично мне проще воспользоваться форматами записей или шаблонами постов)

    • Ответ изменён 5 лет, 5 месяцев назад пользователем SeVlad.
    • Ответ изменён 5 лет, 5 месяцев назад пользователем SeVlad.
Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Тема «не цепляется метка к записи» закрыта для новых ответов.