Изменение поведения тега
Когда я нажимаю "подробнее" внизу одного из сообщений на моем веб-сайте, он просто загружает остальной текст на той же странице и в том же разделе, тем самым заполняя элементы текстом и портя мой макет. Я заметил, что в конце каждого сообщения Wordpress есть тег, когда на панели инструментов добавляется Дополнительная информация. Как я могу переопределить поведение этого тега по умолчанию, чтобы новая страница открывалась, когда пользователь нажимает "Подробнее..." для публикации?
Обновление:
Я использовал следующее код для настройки дополнительной ссылки. Тем не менее, при нажатии он открывает новый экземпляр той же страницы со всеми развернутыми сообщениями (я имею в виду, что все сообщения удаляют ссылку и отображают все их содержимое, что придает моей странице беспорядочный вид.
То, что я хочу, - это просто новая совершенно пустая страница (даже без влияния моей темы), на которой отображается полный текст запрошенного сообщения.
<?php
add_filter( 'the_content_more_link', 'modify_read_more_link' );
function modify_read_more_link() {
return '<a class="more-link" target="_blank" href="' . get_permalink() . '">ادامه...</a>';
}
?>
<?php
$cat_id=get_cat_ID('تازه ترین اخبار');
$posts = get_posts ("cat=$cat_id&posts_per_page=1");
if ($posts)
{
foreach ($posts as $post):
setup_postdata($post); ?>
<h2><?php the_title(); ?></h2>
<?php the_content();?>
<?php endforeach;
}
?>
Обновление:
Following the comments, I created a single.php with the following code:<br/>
<?php
get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php
// Start the Loop.
while ( have_posts() ) : the_post();
get_template_part( 'content', get_post_format() );
if ( comments_open() || get_comments_number() ) {
comments_template();
}
endwhile;
?>
</div><!-- #content -->
</div><!-- #primary -->
<?php
get_footer();
?>
Однако на новой странице отображается только заголовок моего сайта, как только я нажму "подробнее" на главной странице вместе с формой отправки комментариев. Таким образом, сам пост не отображается. Я где-то читал, что могу просто скопировать и вставить содержимое готовой темы, а Wordpress сделает все остальное за меня. Я обрезал несколько частей из-за ошибок, и у меня остался приведенный выше код с упомянутым результатом.
Кто-нибудь знает, что я должен добавить или изменить в single.php чтобы каждый пост был полностью показан на нем с моим произвольным дизайном? Заранее спасибо
3 answers
Похоже, что это проблема с настройкой вашей темы, поскольку то, что вы описываете, не является обычным поведением тега more. Первая часть вашего сообщения предполагает, что в вашей теме есть встроенный Javascript, заставляющий "Подробнее" расширять текст сообщения, а не выводить вас на одну страницу сообщения, удаляя, что JS должен решить эту проблему без каких-либо пользовательских фильтров.
Я бы также дважды проверил, действительно ли ваша тема имеет single.php шаблон включен, последний часть вашего поста предполагает, что, возможно, нет, но это также может быть вызвано JS темы.
Это может быть связано с тем, что вы оставили поле выдержки пустым. Если у вас есть несколько текстов (обычно краткое изложение каждого поста), они будут отображаться на странице вместо полного содержимого. Пожалуйста, попробуйте.
Чтобы узнать больше о настройке по умолчанию, ознакомьтесь с дополнительной ссылкой здесь
Этот поток стека сообщение помогло мне. Я добавил один php со следующим кодом, который работал для меня:
<?php
get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php while ( have_posts() ) : the_post(); ?>
<h3><?php the_category(' › '); echo " › "; the_title(); ?></h3>
<?php the_content(); ?>
<?php endwhile; // end of the loop. ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php
get_footer();
?>
В любом случае спасибо вам, ребята, за ответы.