Intereting Posts
Использование WP_Query и WP_Meta_Query Вне WordPress Изменить постоянную ссылку для custom_post_type с помощью custom_post_meta (woocommerce) Сжатие / минимизация темы или W3 Total Cache – что я должен использовать? Меню пользовательских сообщений Меню разделения WordPress Sanitizing textarea для wp_insert_post с включенным или отключенным TinyMCE Просмотреть список всех вложений на сайте Как изменить размер изображения на стороне клиента перед загрузкой? Добавить столбец имен файлов в медиа-библиотеку Сделать категории таксономии для детей используйте шаблон набора опция галереи недоступна в поле для загрузки мультимедиа в странице опций с параметрами costum Короткие коды, не работающие в вызове AJAX Отображение ссылок на все сообщения той же категории на странице сообщений Подпишитесь на этот блог для частного сайта P2 Themed? Неопределенный индекс: rating_score … / wp-postratings.php в строке 994

Динамически создавать пользовательский тип сообщения в зависимости от отношения Другой пользовательский тип сообщения

Трудно объяснить, что я пытаюсь построить. Поэтому я попытаюсь объяснить это на примере.

Пользовательский тип сообщения : Мобильный

Предположим, что есть 4 мобильных сообщения.

  1. Nokia 6
  2. Samsung S 7
  3. Huawei P 10
  4. Apple iPhone 7

Пользовательский тип сообщения : Сравнить

Следующие сравнительные сообщения должны быть созданы автоматически.

  1. Nokia 6 против Samsung S 7
  2. Nokia 6 против Huawei P 10
  3. Nokia 6 против Apple iPhone 7
  4. Samsung S 7 против Huawei P 10
  5. Samsung S 7 против Apple iPhone 7
  6. Huawei P 10 против Apple iPhone 7

В каждом mobile1 сравнения должны быть два настраиваемых поля, таких как mobile1 и mobile2 и он включает в себя идентификатор сообщения типа мобильной записи.


Возможно ли создать этот тип сайта с помощью WordPress?

У меня есть идеи построить его, используя cron … Я имею в виду чтение Mobile Posts и создание сравнительных сообщений …. Но похоже, что это занимает слишком много времени … Есть ли какой-нибудь простой способ?

Solutions Collecting From Web of "Динамически создавать пользовательский тип сообщения в зависимости от отношения Другой пользовательский тип сообщения"

Я хотел бы добавить другое устройство в любую существующую постоянную ссылку, чтобы вы могли сравнить один с другим, и наоборот. Это полностью динамично / автоматически; т.е. не требует ручного ввода и не работает CRON, и т. д.

Итак, давайте притворимся, что у вас есть:
https://example.com/mobile-device-a/

Мы хотим добавить поддержку для:
https://example.com/mobile-device-a/compare/mobile-device-b/
https://example.com/mobile-device-b/compare/mobile-device-a/


См .: add_rewrite_endpoint()

Создайте новую конечную точку, чтобы вы могли посещать любой тип мобильных сообщений, который уже существует, и просто добавить .../compare/mobile-device-b/ в конец его, который можно использовать для преобразования отображения этого конкретного сообщения в режиме on- муха; т. е. вы будете искать /compare/mobile-device-b/ endpoint в своих шаблонах.

 <?php add_action( 'init', function() { add_rewrite_endpoint( 'compare', EP_PERMALINK ); } ); // This syntax requires PHP 5.4+. 

См. Также: Введение в конечную точку WordPress


Затем добавьте некоторый пользовательский код в файл single.php вашего шаблона, который будет отвечать за обнаружение использования /compare/mobile-device-b/ endpoint и соответствующим образом отрегулировать выход.

Я приведу краткий пример, показывающий, как выполнить подзапрос и вытащить содержимое для другого устройства путём. Тем не менее, вам, несомненно, придется настраивать это дальше и смешивать его с вашей темой и целями дизайна.

 <?php $compare = get_query_var( 'compare' ); $compare = sanitize_key( $compare ); if ( is_singular( 'mobile' ) && $compare ) : $sub_query = new WP_Query( array( 'post_type' => 'mobile', 'name' => $compare, 'posts_per_page' => 1, ) ); ?> <?php the_content(); // Of mobile-device-a. ?> <?php if ( $sub_query->have_posts() ) : ?> <?php while ( $sub_query->have_posts() ) : $sub_query->the_post(); ?> <?php the_content(); // Of mobile-device-b. ?> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_postdata(); ?> <?php endif; ?>