Управление случайной цитатой, такой как функциональность с базой данных


Я хочу иметь такую функциональность, как эта: Случайные цитаты появляются в определенном разделе веб-сайта (скажем, на боковой панели) через определенное время (скажем, каждый день).

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

Так что, возможно, у меня будут эти столбцы -

  • Цитатный текст
  • Отметка времени цитаты_
  • Ссылка на цитату (если есть)
  • Процитировано по

И т.д.

Не могли бы вы помочь мне начать работу над код?

Я знаю sql и могу выучить необходимый php (я знаю другие языки, такие как java, c++ и т.д.). Но у меня нет никакого опыта работы с CSS (кроме некоторого базового синтаксиса).

 1
Author: Pieter Goosen, 2014-11-11

2 answers

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

Итак, что у вас есть дополнительная гибкость из вышеперечисленного. ИМХО, дополнительная гибкость всегда является плюсом при попытке сделать что-то подобное. Другими плюсами здесь является то, что вам не нужно использовать дополнительные функции для создания этих функций, и вам не нужно будет создавать дополнительные поля бд (что я не буду рекомендовать вам делать, я действительно не вижу необходимости в дополнительные таблицы бд здесь)

Я думаю, что проблема здесь в отсутствии реализации. Вот основная идея:

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

Важной частью здесь было бы включить custom-fields в аргументе supports

Вот модифицированный пример из кодекса

function codex_custom_init() {
    $args = array(
      'supports' => array( 'custom-fields' ),
      'label'    => 'Quotes'
    );
    register_post_type( 'quotes', $args );
}
add_action( 'init', 'codex_custom_init' );

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

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

Когда дело доходит до отображая, вам нужно будет использовать пользовательский запрос и переходные процессы. Мы будем использовать WP_Query для пользовательского запроса, который будет отображать котировки и Временный API, который будет ежедневно изменять котировку. Опять же, идите, читайте и играйте с примерами из приведенных ссылок.

Вот концептуальный запрос (модифицированный из кодекса, непроверенный)

// Check for transient. If none, then execute WP_Query
if ( false === ( $quotes = get_transient( 'daily_quotes' ) ) ) {

      $quotes = new WP_Query(
   array(
'post_type' => 'quotes',
'posts_per_page' => 1,
'orderby' = 'rand'
   ));

// Put the results in a transient. Expire after 24 hours.
set_transient( 'daily_quotes', $quotes, 24 * HOUR_IN_SECONDS );
} 

// Run the loop as normal
if ( $quotes->have_posts() ) {

   while ( $quotes->have_posts() ) { 
   $quotes->the_post(); 
       $data = get_post_meta( $post->ID );

       echo 'Quote Text: '. $data['Quote_Text'][0] . '</br>';
       echo 'Quote Timestamp: ' . $data['Quote_Timestamp'][0] . '</br>';
       // Continue with the rest

   }
   wp_reset_postdata();
}
 2
Author: Pieter Goosen, 2017-04-13 12:37:41

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

 -1
Author: rents, 2014-11-20 20:36:38