Висновок опису нових записів з відкритої рубрики wp

Avatar

Від Termin 13-10-2012 12:51:18

Сусід · 103 повідомлень

Добридень

<?php $cat = new WP_query(); $cat->query('orderby=rand&showposts=7&cat=3'); ?>
 
<?php while ($cat->have_posts()) : $cat->the_post(); ?>
 
<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( '%s', 'news' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
		<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( '%s', 'news' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
 <?php endwhile; ?>

Цей код показує мініатюри та опис записів певної рубрики, що потрібно змінити що б код показав нові записи активної рубрики?
Тобто нові записи на сторінках різних категорій.

Наприклад, якщо я читаю запис з рубрики Відео, потрібно щоб внизу сторінки було 7-мь назв сторінок з нових записів рубрики Відео. Якщо я читаю запис з рубрики Аудіо, внизу сторінки 7-мь назв сторінок з нових записів рубрики Аудіо.

Avatar

Від AzzePis 13-10-2012 13:34:35

Administrator · 1,001 повідомлень
query('orderby=rand&showposts=7&cat=3');

спробуйте залишити лише showposts=7 в дужках


Український хостинг для WordPress | Шаблони та плагіни для WordPress українською
Тут можна купити домен за найкращою ціною

Avatar

Від Termin 15-10-2012 12:09:03

Сусід · 103 повідомлень
AzzePis wrote
query('orderby=rand&showposts=7&cat=3');

спробуйте залишити лише showposts=7 в дужках

Це перше, що я зробив, спасибі, виникла другаля проблема - добре що помітив, при додаванні цього коду в будь-якому вигляді пропадають відповіді на повідомлення, два дні гикав зв'язок так і не знайшов.

Avatar

Від AzzePis 15-10-2012 14:07:42

Administrator · 1,001 повідомлень
Termin wrote
AzzePis wrote
query('orderby=rand&showposts=7&cat=3');

спробуйте залишити лише showposts=7 в дужках

Це перше, що я зробив, спасибі, виникла другаля проблема - добре що помітив, при додаванні цього коду в будь-якому вигляді пропадають відповіді на повідомлення, два дні гикав зв'язок так і не знайшов.

спробуйте після

<?php endwhile; ?>

додати

<?php wp_reset_query(); ?>

Український хостинг для WordPress | Шаблони та плагіни для WordPress українською
Тут можна купити домен за найкращою ціною

Avatar

Від mr.psiho 16-10-2012 12:53:20

Сусід · 160 повідомлень

Хочу написати просто доповнення і уточнення.

Замість "showposts" треба використовувати "posts_per_page", оскільки попередній аргумент я застарілим.
Замість wp_reset_query() після кастомного циклу викликаного з допомогою WP_Query правильніше використовувати wp_reset_postdata().


Сайти на WordPress будь якого рівня складності. Сайти на LiveStreet будь якого рівня складності. А ще ми любимо корів)) Звертайтесь. ;)

Avatar

Від Termin 17-10-2012 11:33:26

Сусід · 103 повідомлень

Дякую за допомогу, написав код так:

<?php $cat = new WP_query(); $cat->query('orderby=rand&posts_per_page=7'); ?>
 
<?php while ($cat->have_posts()) : $cat->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( '%s', 'news' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail(); ?></a>
      <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( '%s', 'news' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
      
<?php endwhile; wp_reset_postdata(); ?> 

все працює добре.

Avatar

Від Termin 20-10-2012 16:07:37

Сусід · 103 повідомлень

Ні, не працює, після того як вставив код з локального хоста на веб-сервер, мініатюри не мае, код показує назву мініатюр з додаванням в назву зображення розмір image-125x60.png якого звичайно не коли не існувало. Я так зрозумів це особливість ядра wp (співвідношення сторін). У налаштуваннях: Налаштування медіафайлів всі розміри зазначені 0. У functions.php Є такий розмір:

set_post_thumbnail_size(125, 72, true);

але не чим це не допомагає, є рішення без змін ядра?

Avatar

Від AzzePis 20-10-2012 17:19:06

Administrator · 1,001 повідомлень

а мініатюра присутня в записі, перевіряли?


Український хостинг для WordPress | Шаблони та плагіни для WordPress українською
Тут можна купити домен за найкращою ціною

Avatar

Від mr.psiho 20-10-2012 21:28:48

Сусід · 160 повідомлень

По перше, справді треба перевірити чи мініатюра присутня у записі.
По друге, замість

<?php the_post_thumbnail(); ?>

треба написати типу так

<?php the_post_thumbnail('medium); ?>

- тобто вказати розмір мініатюри який треба показувати на сайті. Розмір "medium" можна задати у налаштуваннях Media. Я не думаю ,що це необхідно, але так надійніше 🙂
Взагалі код

set_post_thumbnail_size(125, 72, true);

у файлі functions.php вказує, що тема хоче застосовувати саме розмір 125х72 для мініатюр і примусово змінює налаштування на вкладці Media таким чином.
По третє, якщо ви активували тему з тим кодом у файлі functions.php після того, як було створено допис і додано зображення до нього, то двигунець банально не має мініатюри, щоб показати її вам. Просто мініатюри не створюються у момент активації плагіна/теми, вони створюються тоді, коли завантажується зображення і долучається до поста. Отже є два шляхи виходу із ситуації:
1. Завантажити наново це саме зображення для поста і тепер вже мініатюра згенерується.
2. Скористатись плагіном Regenerate thumbnails і перегенерувати мініатюри до всіх зображень у всіх постах на сайті.


Сайти на WordPress будь якого рівня складності. Сайти на LiveStreet будь якого рівня складності. А ще ми любимо корів)) Звертайтесь. ;)

Avatar

Від Termin 21-10-2012 10:25:01

Сусід · 103 повідомлень

AzzePis
Таких мініатюр image-125x60.png немає, є тільки image.png.

mr.psiho
Достатьчно було замінити код

<?php the_post_thumbnail('medium'); ?>

і всі мініатюри відображаються. Я б сам не здогадався, дякую вам. Залишилося зробити код який буде дійсно показувати останні нові записи у категорії.

Цей рядок не впоралася з цим.

<?php $cat = new WP_query(); $cat->query('orderby=rand&posts_per_page=7'); ?>