Véletlenszerű cikkek rövid tartalommal

Sziasztok!





Egy olyan gondom lenne, hogy szeretnék véletlenszerű cikkeket megjeleníteni pl. az oldalsávban. A kód meg is van, meg minden. A főoldalon úgy vannak a cikkeim, hogy rövid tartalommal és ha a továbbra kattintunk, akkor hozza be a teljes tartalmat. Ehhez a functions.php-ban be is állítottam, hogy 60 szót mutasson. Az úgy ott tökéletes.





De így most a véletlen cikkeknél is 60 szót mutat és én azt úgy szeretném, hogy ott mondjuk csak 25 szót mutasson. Ezt hogy tudnám megvalósítani? Már tényleg mindent átböngésztem. Magyar, külföldi, minden, de semmi. Lehet csak elkerülte a figyelmemet.





Ez a kódom a véletlenszerű bejegyzéseknek:

<br />
<?php<br />
$post_id = get_the_ID();<br />
<br />
$args = array(<br />
   'orderby' => 'rand',<br />
   'posts_per_page' => 5,<br />
   'post__not_in' => array( $post_id )<br />
);<br />
<br />
$rand_query = new WP_Query( $args );<br />
echo '<div>';<br />
while ( $rand_query->have_posts() ) : $rand_query->the_post();<br />
   echo '<div>'.the_post_thumbnail( 'cikkajanlo' ).'<a href="'.get_permalink().'" title="'.the_title('','',false).'">'.the_title('','',false).'</a><p>'.get_the_excerpt().'</p></div>';<br />
endwhile;<br />
echo '</div>';<br />
?>
```<br />
A function.php-ban pedig ezzel a kóddal állítottam be, hogy a főoldalon 60 szó jelenjen meg:<br />

function custom_excerpt_length( $length ) {
return 60;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); ```

Próbáld meg így:



functions.php:

<br />
function excerpt($limit) {<br />
$excerpt = explode(' ', get_the_excerpt(), $limit);<br />
if (count($excerpt)>=$limit) {<br />
array_pop($excerpt);<br />
$excerpt = implode(" ",$excerpt).'...';<br />
} else {<br />
$excerpt = implode(" ",$excerpt);<br />
}<br />
$excerpt = preg_replace('`<a href="/?page=%5C" class="bbcode_wiki">^</a>*]`','',$excerpt);<br />
return $excerpt;<br />
}<br />
<br />
function content($limit) {<br />
$content = explode(' ', get_the_content(), $limit);<br />
if (count($content)>=$limit) {<br />
array_pop($content);<br />
$content = implode(" ",$content).'...';<br />
} else {<br />
$content = implode(" ",$content);<br />
}<br />
$content = preg_replace('/[.+]/','', $content);<br />
$content = apply_filters('the_content', $content);<br />
$content = str_replace(']]>', ']]>', $content);<br />
return $content;<br />
}<br />

```<br />
A véletlenszerű lekérdezésnél:<br />


vagyis a get_the_excerpt() rész helyett: excerpt(25)

Nagyon szépen köszönöm :slight_smile: Ez sikerült. Ezekkel az excerpt kódokkal vagyok bajban mindig. Pont ezért még egy kérdés felmerült.





Ha a te általad javasolt kódot használom a function.php-ban, az jó, tetszik. Viszont van egy category.php oldalam, ahol szintén rövid tartalom jelenik meg. De ott sem a 60 szót szeretném alkalmazni, hanem egyedit. Ezzel hívom be ott a rövid tartalmat:

<br />

```<br />
És ha csak úgy simán beírom a zárójelbe a pl. 90-et, akkor nem történik semmi.

A the_excerpt helyett ezt használd a category.php fájlban is:

<br />

Igen, mire leírtad már rájöttem :slight_smile: Nagyon szépen köszönöm :slight_smile: