Управление случайной цитатой, такой как функциональность с базой данных
Я хочу иметь такую функциональность, как эта: Случайные цитаты появляются в определенном разделе веб-сайта (скажем, на боковой панели) через определенное время (скажем, каждый день).
Я хочу включить его, используя новую таблицу в базе данных.
Так что, возможно, у меня будут эти столбцы -
- Цитатный текст
- Отметка времени цитаты_
- Ссылка на цитату (если есть)
- Процитировано по
И т.д.
Не могли бы вы помочь мне начать работу над код?
Я знаю sql и могу выучить необходимый php (я знаю другие языки, такие как java, c++ и т.д.). Но у меня нет никакого опыта работы с CSS (кроме некоторого базового синтаксиса).
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();
}
Я нашел плагин, и он использовал пользовательскую таблицу базы данных, которая была тем, что я искал. Я настрою его код так, как позволяет лицензия