Используя Wordpress, я изменил пользовательскую тему для отображения количества слов постов и приблизительного времени чтения с помощью скрипта, найденного на веб-сайте.Я даже добавил возможность включить / выключить его.Сценарий работает нормально ... или я так подумал.
Когда я включил параметры отладки Wordpress для поиска ошибок в теме, я получил один для этого сценария.Однако я не вижу проблемы.
Ошибки, отображаемые при просмотре веб-страницы :
Это сообщение содержит
Примечание:Неопределенная переменная: запись в /home/xxxxxx/wordpress.xxxxxx.com/wp-content/themes/xxxxxx/functions.php в строке 1676
Примечание: попытка получить свойство необъекта в / home /xxxxxx / wordpress.xxxxxx.com / wp-content / themes / xxxxxx / functions.php в строке 1676
52 слова.
В этом сообщении вы узнаете о
Примечание: неопределенная переменная: запись в /home/xxxxxx/wordpress.xxxxxx.com/wp-content/themes/xxxxxx/functions.php в строке 1683
Примечание: попытка получить свойство необъекта в /home/xxxxxx/wordpress.xxxxxx.com/wp-content/themes/xxxxxx/functions.php в строке 1683
1 минутачитать.
Сценарий, который я скопировал и добавил в: /functions.php
/*** ADD POST WORD COUNT ***/
function word_count() {
$content = get_post_field( 'post_content', $post->ID );
$word_count = str_word_count( strip_tags( $content ) );
return $word_count;
}
/*** ADD ESTIMATED READING TIME ***/
function reading_time() {
$content = get_post_field( 'post_content', $post->ID );
$word_count = str_word_count( strip_tags( $content ) );
$readingtime = ceil($word_count / 200);
if ($readingtime == 1) {
$timer = " minute";
} else {
$timer = " minutes";
}
$totalreadingtime = $readingtime . $timer;
return $totalreadingtime;
}
Параметры, которые я добавил в: /functions.php
/* MAIN SETTINGS - Show Entry Word Count Setting */
$wp_customize->add_setting('swag_main_post_word_count', array(
'default' => 'swag-main-post-word-count-yes'
));
$wp_customize->add_control('swag_main_post_word_count', array(
'label' => 'Display Post Word Count',
'section' => 'swag_main_design',
'type' => 'select',
'choices' => array(
'swag-main-post-word-count-yes' => __('Yes'),
'swag-main-post-word-count-no' => __('No')
)
));
/* MAIN SETTINGS - Show Entry Reading Time Setting */
$wp_customize->add_setting('swag_main_post_read_time', array(
'default' => 'swag-main-post-read-time-yes'
));
$wp_customize->add_control('swag_main_post_read_time', array(
'label' => 'Display Post Read Time',
'section' => 'swag_main_design',
'type' => 'select',
'choices' => array(
'swag-main-post-read-time-yes' => __('Yes'),
'swag-main-post-read-time-no' => __('No')
)
));
В файле шаблона темы: /template-parts/content.php
<?php
if (isset($swag_main_post_word_count) && $swag_main_post_word_count=='swag-main-post-word-count-yes') {
echo '<div class="word-count">This post contains ';
echo '' . word_count() . '';
echo ' words.</div>';
}
?>
<?php
if (isset($swag_main_post_read_time) && $swag_main_post_read_time=='swag-main-post-read-time-yes') {
echo '<div id="reading-time">This post will take you about ';
echo '' . reading_time() . '';
echo ' to read.</div>';
}
?>
Я не думаю, чтоошибка в добавленных мной опциях, но я добавил их на всякий случай.Я думаю, что ошибка в сценарии, который я сам скопировал.Что это и как мне это исправить?