Добавить ссылку в пользовательском пост-типе - Wordpress - PullRequest
1 голос
/ 27 марта 2012

У меня есть собственный тип записи в Wordpress 3. Я бы хотел, чтобы в каждом сообщении этого типа была возможность добавить ссылку. В основном это будет ссылка, которая ссылается на другую страницу / публикацию на сайте.

Для каждого сообщения этого типа должна быть только одна ссылка. И тогда мне нужно будет извлечь эту ссылку в мои файлы шаблонов. По сути, я создаю пост-тип "Слайд-шоу" И каждый слайд-элемент должен быть связан с одной страницей или постом. Поэтому при нажатии на слайд вы попадете на указанную страницу.

я знаю, что могу сделать это, используя настраиваемое поле. Но тогда мне нужно будет вводить весь URL каждый раз. Я хотел бы иметь функцию, аналогичную функции кнопки редактора WordPress WYSIWYG. Так что я могу легко добавить ссылку на «существующий контент».

Кто-нибудь знает какие-либо учебные пособия или подобное о том, как это сделать?

Спасибо!

Ответы [ 3 ]

1 голос
/ 06 апреля 2012

немного удивлен, никто не упомянул этот плагин "Ссылки по теме" Плагин Wordpress Ссылки по теме

Добавляет метабокс в ваши формы редактирования. Вы можете сделать ссылку на связанный контент или вставить внешний URL.

Позволяет ссылки на сообщения, страницы, мультимедиа и пользовательский тип сообщения - проверьте его тип на странице настроек плагина после установки. Он использует средство поиска / просмотра, аналогичное обычной функции вставки ссылки WYSIWYG!

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

Может принимать несколько ссылок, но одна будет работать, конечно. Затем вы используете функцию get_related_link () в своем шаблоне, чтобы вывести ее и отформатировать так, как вам нравится.

0 голосов
/ 19 января 2016

Мне кажется, что лучший способ сделать это - добавить собственный мета-блок ко всем постам и типам постов (см. Здесь: http://themefoundation.com/wordpress-meta-boxes-guide/).. В этом мета-боксе вы можете просто запросить все посты, которые Вы хотели бы включить его в раскрывающийся список. Затем можно выбрать сообщение из этого раскрывающегося списка, получить идентификатор выбранного сообщения (использовать в качестве атрибута данных в поле параметра) и затем вернуть постоянную ссылку для этого идентификатора. вам просто нужно выбрать пост, а не каждый раз узнавать фактический URL.

Другим способом было бы прикрепить часть уникальных данных к x post (скорее всего, используя пользовательские поля), а затем также прикрепить их к y post. Таким образом, вы можете использовать функцию для автоматического добавления ссылки на отображаемое сообщение. Это можно сделать, запросив записи в базе данных, сопоставив пользовательские данные, и, если они совпадут, отобразит ссылку на этот пост. Это позволило бы автоматизировать все это, и вам даже не пришлось бы ничего выбирать. На мой взгляд, поля заголовка на самом деле должно быть достаточно для этого, так как оба поста имеют разные типы постов (вы должны иметь возможность называть их одинаковыми), и, скорее всего, ваш запрос будет немного проще / короче, так как вам просто потребуется найдите сообщение, соответствующее заголовку, а затем ссылку на постоянную ссылку.

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

Я надеюсь, что вышесказанного будет достаточно, чтобы вы начали.

0 голосов
/ 27 марта 2012

Если вы просто хотите сделать ссылку между двумя сообщениями, а не вставлять ее в содержание своего сообщения, я бы порекомендовал плагин Сообщения 2 Сообщения . Это позволит вам создавать ссылки между постами без необходимости запоминать полный URL.

Edit:

Я не использовал его, но я подозреваю, что аргумент cardinality должен помочь вам ограничить количество ссылок - см. вики .

И вы, безусловно, можете получить доступ к соединениям в своих шаблонах - у меня есть. После регистрации типа подключения вы можете просто позвонить get_connected:

    $venue_details = p2p_type( 'exhibition_to_venues' )->get_connected( $post->ID, array(
        'posts_per_page' => -1,
        'connected_orderby' => 'order',
        'connected_order' => 'ASC' )
    );
...