n-wp.ru — блог о WordPress

Шорткод вывода любого поста на любой странице

Шорткод, с помощью которого можно вывести содержимое любого поста на странице. С его помощью можно выводить содержимое нескольких постов на одной странице, не редактируя шаблон страницы.

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

Этот шорткод можно вставлять в содержимое любой страницы, и в результате его работы будет выводиться содержимое указанного поста. Тоже хотите такой шорткод? Тогда откройте файл файл functions.php и добавьте в него следующий код:

Пример использования шорткода:

XX — это ID поста. Довольно простой шорткод: просто указываете ID поста, и его содержимое выводится в нужном месте страницы. Если вы ничего не укажете или укажете несуществующий ID, то шорткод просто ничего не выведет. Шорткод удобен тем, что с его помощью можно обойтись без создания специального шаблона для такой страницы.

8 комментариев

    • Если использовать кэширование, то ничего с блогом не случится. Один раз сделает дикое количество запросов, а потом будет обходиться без них.

  • Все получилось!!! Огромное спасибо, но на странице выводит один пост, ка же сделать чтоб выводились все посты из какой то одной(или нескольких) категорий?

  • Супер — то что искал, даже спросил на форуме вордпреса, но может быть вы подскажете тогда такой момент: а если выводить не одну запись — а несколько, списком.
    Я себе тут нарисовал задачу — у меня есть главная страница. которая разделена на несколько колонок. В одной у меня общая инфа про компанию, а в правой есть есть новости которые пишем руками и бла бла бла. Я хочу сделать рубрику Новости и выводить только содержимое записей, без заголовка но с датой. Выводить хочется всего 3 записи и сделать ссылку еще чтобы открывалась рубрика со всеми новостями.

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

    Рубрику «Новости» и ее содержимое закрыть от индексации чтобы роботы не сканировали короткие записи

    • Вы хотите выводить с помощью шорткода несколько последних постов из определенной категории? Тогда удобнее смастерить другой шорткод. Например, такой:

      Использование:

      id — это ID категорий, из которых нужно выводить посты
      count — количество последних постов

      • Спасибо за код, мне еще рекомендовали mini-loop модуль — пока я с ним проколупался и вставил ваш код вы сделали то что нужно — спасибо — я сейчас исправлю код. Все работает как часики — заключил в span и выводится все красиво

  • Доброго времени суток подскажите пожалуйста. А как добавить шорткод для собственного типа постов? Например: нашол я в интернете как регистрировать — зарегистрировал
    register_post_type(‘gadgets’,
    array(
    ‘labels’ => array(
    ‘name’ => __(‘Gadgets’),
    ‘singular_name’ => __(‘Gadget’),
    //остальные переводы
    ),
    ‘public’ => true,
    ‘publicly_queryable’ => true,
    ‘query_var’ => true,
    ‘taxonomies’ => array(‘category’,’post_tag’),
    ‘supports’ => array(‘title’,’editor’,’author’,’thumbnail’,’excerpt’,’comments’),
    ‘rewrite’ => array(‘slug’ => ‘gadgets’),
    //другие настройки
    )
    );
    но шорткод их не выводит(((
    Благодарю!

    • Переписал… Вопрос снят…добавил в начало кода данные
      $args = array(
      ‘post_type’ => ‘gadgets’,
      ………

      ещё раз благодарю… отличный шорт код…..