У меня есть две кнопки в моем шаблоне одного продукта: «Читать дальше» для описания продукта в блоке сведений о продукте (тема WordPress 2024) и вторая, которая берет содержимое из пользовательского типа сообщения и отображает его при нажатии, называемое show Composer. . Последний проверяет содержимое поля ACF, сопоставляет его с заголовком пользовательского сообщения и отображает содержимое. Он не показывает, нет ли совпадения. Конфликт возникает только тогда, когда отображается кнопка «Показать композитор». Конфликт не позволяет кнопке «Читать далее» работать. Для подтверждения: если Composer не найден, эта кнопка не отображается, а кнопка «Читать далее» работает должным образом. Если композитор найден, кнопка «Читать дальше» не работает. Единственное, что, как я вижу, может вызвать это, это то, что последняя строка кода Подробнее может конфликтовать со строкой кода Show Composer, которая вызывает the_content().
Но я не вижу, как это решить, если это так.
Код двух модулей приведен ниже.
/*======================================================================================
#6 Shorten product long description with read more button
=======================================================================================*/
function filter_the_content( $content ) {
// Only for single product pages
if( ! is_product() ) return $content;
// Set the limit of words
$limit = 25;
// Strip p tags if needed
$content = str_replace( array( '
', '
' ), '', $content );
// If the content is longer than the predetermined limit
if ( str_word_count( $content, 0 ) > $limit ) {
// Returns an associative array, where the key is the numeric position of the word inside the string and the value is the actual word itself
$arr = str_word_count( $content, 2 );
// Return all the keys or a subset of the keys of an array
$pos = array_keys( $arr );
// First part
$text = '
' . substr( $content, 0, $pos[$limit] ) . '...';
// More part
$text .= '' . substr( $content, $pos[$limit] ) . '
';
// Read button
$text .= '';
$content = force_balance_tags( $text ); // needded
}
?>
jQuery(document).ready( function ($) {
// Settings
var read_more_btn_txt = 'Read more';
var read_less_btn_txt = 'Read less';
// Selectors
var more = '#more';
var read_button = '#read-button';
var dots = '#dots';
// On load
$( more ).hide();
$( read_button ).html( read_more_btn_txt );
// On click
$( read_button ).on( 'click', function() {
if ( $( more ).is( ':hidden' ) ) {
$( more ).show();
$( dots ).hide();
$( read_button ).html( read_less_btn_txt );
} else {
$( more ).hide();
$( dots ).show();
$( read_button ).html( read_more_btn_txt );
}
});
});
Подробнее здесь: https://stackoverflow.com/questions/787 ... -and-displ