#wordpress #architecture
#wordpress #архитектура
Вопрос:
Обновить
Я решил это таким образом:
Что вам нужно:
- Пользовательский тип записи
- Включен плагин «Публикует 2 сообщения» (см. Комментарии ниже)
- Включен плагин «Разрешить числовые заглушки«
Вам понадобится плагин «Posts 2 Posts», чтобы назначать публикации на страницы. «Разрешить числовые заглушки» — это плагин, который позволит вам иметь числовые заглушки для страниц. Если вы попытаетесь добавить страницы с именами 2011 или 2012, вы получите страницы-слизни, такие как 2011-2 или 2012-2, потому что невозможно иметь страницу-слизнь, которая является числом.
Сначала вам нужно добавить несколько страниц. Например, 2011 год, номинанты и актеры. Теперь вы упорядочиваете страницы как дочерние в соответствии с вашими потребностями.
2011
-Nominees
--Actors
Теперь ваш URL-адрес будет выглядеть http://example.com/2011/nominees/actors
Теперь вам нужно добавить пользовательский тип записи, который содержит ваших кандидатов. Добавьте несколько номинантов в свой тип публикации (это должно работать и со статьями).
Зарегистрируйте тип подключения в своем functions.php
function my_connection_types() {
// Make sure the Posts 2 Posts plugin is active.
if ( !function_exists( 'p2p_register_connection_type' ) )
return;
p2p_register_connection_type( array(
'id' => 'posts_pages',
'from' => 'page',
'to' => 'nominees' // Your Post-Type
) );
}
add_action( 'init', 'my_connection_types', 100 );
Теперь перейдите на свою страницу актера, найдите метабокс с именем «Подключенные номинанты» и добавьте своих номинантов.
Отредактируйте свой page.php
<article class="single entry">
<header class="post post-header">
<h1><?php the_title(); ?></h1>
</header>
<section class="post post-content">
<?php the_content(); ?>
<?php
// Find connected pages
$connected = p2p_type( 'posts_pages' )->get_connected( get_queried_object_id() );
// Display connected pages
if ( $connected->have_posts() ) :
?>
<?php while ( $connected->have_posts() ) : $connected->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
<?php
// Prevent weirdness
wp_reset_postdata();
endif;
?>
</section>
</article>
Теперь вы должны иметь возможность видеть подписанные вами сообщения (номинантов) на актерах вашей страницы.
Решение легко понять авторам, поскольку они работают с поведением WordPress по умолчанию, а процесс подключения к контенту кажется действительно естественным.
Я ищу некоторые рекомендации по архитектуре данных в WordPress 3.1.n
Вот факты:
- Это какая-то награда
- Награда имеет
**n**
разные категории - Люди могут быть назначены
- Каждый кандидат может быть связан с 1 категорией
- Каждая категория сгруппирована по годам
- Каждая категория может содержать до 3 или 5 номинантов
Категории / термины (?)
2011
- актер
- специальные эффекты
- История
2012
- актер
- специальные эффекты
- История
Например:
- http://example.com/nominees/2011/actor/all-nominees-in-actor-cat-in-2011.html
- http://example.com/nominees/2011/special-effects/all-nominees-in-special-effects-cat-in-2011.html
- http://example.com/nominees/2012/special-effects/all-nominees-in-special-effects-cat-in-2012.html
Примечание: Пользовательские типы сообщений и пользовательские таксономии в порядке, но я не могу заставить работать термины хирахической таксономии.
Есть ли у кого-нибудь предложения по решению этой проблемы с помощью WordPress?
Комментарии:
1. Пожалуйста, уточните, что я не могу получить работу с терминами таксономии .
2. Я считаю, что иерархия с терминами, ОТЛИЧНЫМИ от категорий (которые хранятся в таблице таксономии вместе со всеми другими терминами), не поддерживается WordPress. Возможно, именно поэтому у вас возникли проблемы с этим.
3. @JasonMcCreary Я подробно рассмотрю проблему завтра, обновив свой первоначальный пост.
Ответ №1:
Вы могли бы рассмотреть возможность создания типа публикации «Награда» с категориями, являющимися типами наград… Лучший актер, спецэффекты и т.д. Также вы можете пометить каждое сообщение о награждении тем, какой это год. Мне нравится помечать год против года как категорию, потому что это дает вам возможность создавать и масштабировать контент по годам по мере роста сайта. Однако категория также будет работать.
Затем, возможно, создайте тип сообщения актера с именем каждого актера, это будет иметь дополнительное преимущество масштабируемости, если вы захотите расширить профили актеров в будущем. Затем рассмотрите возможность их подключения с помощью чего-то вроде плагина «Posts 2 Posts». Плагин здесь
Этот плагин отлично подходит для связывания сообщений с другими сообщениями, например, с сообщением «обзор» с сообщением «продукт». По сути, вы будете делать то же самое, за исключением того, что «обзор» будет заменен на «награда», а «продукт» будет связан с «актер».
Комментарии:
1. Поддерживает ли плагин «Posts 2 Posts» URL-адреса, упомянутые выше?
2. Он только устанавливает отношения, однако вы должны иметь возможность вручную указывать их в wp-admin ИЛИ с помощью плагина, такого как All in One SEO (отличный плагин, кстати.) Найдите это на wordpress.org/extend/plugins/all-in-one-seo-pack
3. Кроме того, вы можете указать некоторые настройки URL при регистрации нового типа публикации. Если вы хотите, чтобы пользовательский интерфейс делал это, я настоятельно рекомендую wordpress.org/extend/plugins/custom-post-type-ui
4. Что вы думаете об этом способе? 1. добавьте страницу с именем 2011 года; 2. добавьте страницу (как дочернюю страницу 2011 года) с именем категории (актеры); 3. добавьте пользовательский тип записи: номинанты; 4. добавьте несколько номинантов; 5. Свяжите соответствующих номинантов с помощью плагина «Posts 2 Posts» с категорией страницы (актеры).
5. Я попробовал, и, похоже, это работает 🙂 Бонус: авторам легко понять. Они работают с поведением WordPress по умолчанию, и процесс подключения к контенту кажется естественным. Спасибо!