Adding asides posts in the sidebar

Μια περιοχή για το WordPress, αυτή την δημοφιλή δωρεάν πλατφόρμα για blogging

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
ALR
Honorary Member
Δημοσιεύσεις: 1712
Εγγραφή: 09 Απρ 2005 17:30

Adding asides posts in the sidebar

Δημοσίευση από ALR » 04 Μαρ 2009 00:07

Καλησπέρα,

πριν την έκδοση του 2.7 Wordpress, συνήθιζα να βάζω μικρά posts στη πλευρική στήλη (sidebar) με το plugin Sideblog.

Από ότι φαίνεται όμως, το plugin είναι outdated και δοκίμασα τον τελευταίο τρόπο που περιγράφεται εδώ--> http://codex.wordpress.org/Adding_Asides

Με έκπληξη διαπίστωσα ότι αν ακολουθήσω σωστά τις οδηγίες, η σελίδα καταστρέφεται (lol).

Αν όμως παραλείψουμε αυτή την οδηγία:
After that, you will then need to find this line:

<?php endwhile; ?>

And just before that line, paste this:

<?php } ?>
όλα παίζουν κανονικά και το αποτέλεσμα είναι να βγαίνουν όσα asides posts γράφω στην κατηγορία που δήλωσα ως asides και εμφανίζεται το περιεχόμενο, ένα permalink και ο αριθμός σχολίων.

Εγώ θέλω να εμφανίζεται πάνω από το περιεχόμενο ο Τίτλος, να γίνει link, να εξαφανιστούν τα σχόλια και το permalink και να εμφανίζεται ΜΟΝΟ ένα άρθρο από όσα γράφω, το νεότερο φυσικά.

Για αυτό θα πρέπει να παραμετροποιηθεί ο παρακάτω κώδικας:

Κώδικας: Επιλογή όλων

<?php
if &#40;$posts&#41; &#58; foreach &#40;$posts as $post&#41; &#58; the_post&#40;&#41;;
?>
<?php if &#40;in_category&#40;14&#41;&#41; &#123; ?>
<div class="asides_sidebar">
 <?php echo $post->post_excerpt ?> <?php the_content&#40;&#41;; ?>
 <small><?php comments_popup_link&#40;__&#40;'#'&#41;, __&#40;'&#40;1&#41;'&#41;, __&#40;'&#40;%&#41;'&#41;&#41;; ?>
   <?php edit_post_link&#40;'Edit', ' &#8212; '&#41;; ?></small>
</div>
<?php &#125; ?>
<?php endforeach; else&#58; ?>
<p><?php _e&#40;'Sorry, no posts matched your criteria.'&#41;; ?></p>
<?php endif; ?>
αλλά δυστυχώς κάπου εδώ κολάω.

Τρόπο να πετύχω εύκολα αυτό που θέλω βρήκα, χωρίς wp hacks, αλλά με τη χρήση widgets και του widget plugin : miniposts2.
Και πραγματικά γίνονται όσες παραμετροποιήσεις μπορεί κανείς να σκεφτεί.

Το κακό όμως είναι ότι είμαι υποχρεωμένος να χρησιμοποιώ widgets, που όπως πολλοί γνωρίζετε, δε σου επιτρέπουν να κάνεις ότι θέλεις στη Sidebar και είσαι δέσμιος των Widgets που κυκλοφορούν. Αν και είναι πολλά, προτιμώ την ελευθερία του "μανίσιου κώδικα",
και για αυτό ζητώ τη βοήθεια σας στην παραπάνω μου αναζήτηση!

Ευχαριστώ!
Γίνονται πραγματάκια

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Adding asides posts in the sidebar

Δημοσίευση από Basilakis » 04 Μαρ 2009 00:56

για δοκίμασε αυτό τον κώδικα, που χρησιμοποιώ εγώ για τα asides Μου

Κώδικας: Επιλογή όλων

<!-- Asides Start -->
<?php if &#40; in_category&#40;84&numberposts=1&#41;&#41; &#58; ?>
<div id="p<?php the_ID&#40;&#41;; ?>" class="asidesindex">
<?php echo wptexturize&#40;$post->post_content&#41;; ?>
<span> <?php comments_popup_link&#40;'&#40;0 comments&#41;', '&#40;1&#41;',
'&#40;%&#41;'&#41;?> <a href="<?php the_permalink&#40;&#41;; ?>"
title="Permalink&#58; <?php echo 
wptexturize&#40;strip_tags&#40;stripslashes&#40;$post->post_title&#41;, ''&#41;&#41;; ?>"
rel="bookmark">read more...</a> <?php edit_post_link&#40;'&#40;e&#41;'&#41;; ?></span></div>
<?php else&#58; // If it's a regular post or a permalink page ?>
<!-- Asides End ->
Απο την άλλη μπορείς να παίξεις με κάτι παρόμοιο, costum work βέβαια...

Το aside που θέλεις σαν category θα το κάνεις exclude απο το main stream (εάν δεν θέλεις να εμφανίζεται εκεί) και στο sidebar θα προσθέσεις

Κώδικας: Επιλογή όλων

<?php $posts = get_posts&#40; "category=63&numberposts=1" &#41;; ?> 
<?php if&#40; $posts &#41; &#58; ?> <?php foreach&#40; $posts as $post &#41; &#58; setup_postdata&#40; $post &#41;; ?> 
<h2><a href="<?php the_permalink&#40;&#41; ?>" title="Permanent Link to <?php the_title&#40;&#41;; ?>">
EDITORIAL</a></h2> 
 <?php endforeach; ?> <?php endif; ?>
για να κάνεις exclude, εάν χρησιμοποιείς pagination plugin, χρησιμοποίησε τον παρακάτω κώδικα

Κώδικας: Επιλογή όλων

<?php
// I am leaving Outside Index page, the category named 63
 $paged = intval&#40;get_query_var&#40;'paged'&#41;&#41;;
if&#40;$paged == 0&#41; &#123;
$paged = 1;
&#125;
query_posts&#40;"cat=-63&paged=$paged"&#41;;
?>

ALR
Honorary Member
Δημοσιεύσεις: 1712
Εγγραφή: 09 Απρ 2005 17:30

Adding asides posts in the sidebar

Δημοσίευση από ALR » 04 Μαρ 2009 01:59

Thanks Basilakis :)

Θα δοκιμάσω και θα σου πώ. Πάντως δε χρησιμοποιώ κάποιο pagination plugin.
Γίνονται πραγματάκια

ALR
Honorary Member
Δημοσιεύσεις: 1712
Εγγραφή: 09 Απρ 2005 17:30

Adding asides posts in the sidebar

Δημοσίευση από ALR » 04 Μαρ 2009 09:09

Δεν χρησιμοποιώ pagination plugin τουλάχιστον στο συγκεκριμένο project αλλά δεν έχω πρόβλημα να βάλω.
Έχεις να προτείνεις κάποιο συγκεκριμένο;
Γίνονται πραγματάκια

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Adding asides posts in the sidebar

Δημοσίευση από Basilakis » 04 Μαρ 2009 14:05

Δεν είναι ανάγκη να το βάλεις για να δουλέψει ο κώδικας, μόνο εάν δεν θέλεις το category των asides να φένεται στην Index σου, αλλα μόνο στο sidebar. Απλώς σου παραθέτω τι πρέπει να χρησιμοποιήσεις ένα έχεις κάποιο pagination plugin installed γιατί εάν χρησιμοποιήσεις τον κώδικα απο το codex για exclude categories που είναι αυτός

Vriskeis afto

Κώδικας: Επιλογή όλων

    <?php /* Start the loop */ while &#40; have_posts&#40;&#41; &#41;

    &#123;

    the_post&#40;&#41;;

    ?>
Antikathistas me afto

Κώδικας: Επιλογή όλων

     <?php /* Start the loop */ while &#40; have_posts&#40;&#41; &#41;

    &#123;

    the_post&#40;&#41;;

    if &#40;is_home&#40;&#41;&#41; if &#40;in_category&#40;’14&#8242;&#41;&#41; continue;
    if &#40;is_home&#40;&#41;&#41; if &#40;in_category&#40;’47&#8242;&#41;&#41; continue;

    ?>

( xrisimopoiise afto ean den exeis pagi, tin idia leitourgeia sou kanei :) )

Τώρα, το άλλο με το pagi στο παρέθεσα γιατί όταν έκανα exclude εγώ στο jailbait.gr το pagi μου χτυπούσε προβλήματα, έτσι υπέθεσα πως εάν το χρησιμοποιεις θα ήθελες την λύση!

Αυτά, ελπίζω να βγάλεις άκρη, αλλιώς εδώ είμαστε!

ALR
Honorary Member
Δημοσιεύσεις: 1712
Εγγραφή: 09 Απρ 2005 17:30

Adding asides posts in the sidebar

Δημοσίευση από ALR » 04 Μαρ 2009 14:29

Thanks man.
Θα το δω μόλις βρώ χρόνο και θα σου πώ!
Γίνονται πραγματάκια

ALR
Honorary Member
Δημοσιεύσεις: 1712
Εγγραφή: 09 Απρ 2005 17:30

Adding asides posts in the sidebar

Δημοσίευση από ALR » 08 Μαρ 2009 20:06

@Βασιλάκη!

έκανα αυτό που ήθελα, απλά δε λειτουργεί σωστά :p

Αυτό που ήθελα λοιπόν, είναι να εμφανίζεται πρώτα ο Τίτλος (όντας link) και έπειτα το excerpt του post.

Οπότε πήρα τον κώδικα σου και τον έκανα κάπως έτσι στη sidebar:

Κώδικας: Επιλογή όλων

                        <li id="next_game">

<?php
if &#40;$posts&#41; &#58; foreach &#40;$posts as $post&#41; &#58; the_post&#40;&#41;;
?>
<?php if &#40;in_category&#40;7&#41;&#41; &#123; ?>
<div class="asides_sidebar">
 <h2 id="nextgame_title"> <a href="<?php the_permalink&#40;&#41; ?>" title="Permanent Link to <?php the_title&#40;&#41;; ?>">
<?php the_title&#40;&#41;; ?></a></h2> <?php echo $post->post_excerpt ?>
 </div>

<?php &#125; ?>
<?php endforeach; else&#58; ?>
<p><?php _e&#40;'Sorry, no posts matched your criteria.'&#41;; ?></p>
<?php endif; ?>


</li>

αφού φυσικά έβαλα κάπου επάνω το
<?php rewind_posts(); ?>

Στην index.php έβαλα αυτό για μην παρουσιάζει και εκεί τα άρθρα:

Κώδικας: Επιλογή όλων

<?php  if &#40;is_home&#40;&#41;&#41; if &#40;in_category&#40;'7'&#41;&#41; continue; ?>
Οι παρενέργειες είναι λίγο περίεργες.

Έχω ρυθμίσει το WP να παρουσιάζει στη κεντρική σελίδα 2 άρθρα.
Με τον κώδικα που έγραψα, αυτό που γίνεται είναι όταν υπάρχει πρόσφατο άρθρο με την κατηγορία που εμφανίζεται στα asides, να αποκρύπτεται από την κεντρικη σελίδα, αλλά να εμφανίζεται μόνο 1 άρθρο αντί για 2. αν υπάρχουν 2 πρόσφατα άρθρα στην κατηγορία που μπαίνει στο asides, στην κεντρική δεν θα εμφανιστεί κανένα άρθρο!

Αντίθετα, αν υπάρχουν 2 άρθρα πρόσφατα, που δεν ανοίκουν στην κατηγορία asides, εμφανίζονται κανονικά στην κεντρική σελίδα, αλλά στο asides δεν εμφανίζεται το τελευταίο άρθρο της κατηγορίας!

Τα έκανα σκατά ε; γμτ :p

Edit: 1 σχετικό άρθρο που βρήκα ( αλλά δεν ξέρω κατά πόσο θα βοηθήσει ) είναι αυτό http://www.4null4.de/137/better-sidebar-asides/
Γίνονται πραγματάκια

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Adding asides posts in the sidebar

Δημοσίευση από Basilakis » 09 Μαρ 2009 18:57

Απο ότι καταλαβαίνω το query σου πάει στο Next καθαρά σαν post οπότε συμβαίνει και το πρόβλημα σου.
Δεν μου έχει συμβεί ποτέ για να πώ την αλήθεια...

Δοκίμασε να κάνεις αυτό

Κώδικας: Επιλογή όλων

<?php if &#40;in_category&#40;7&numberposts=2&#41;&#41; &#123; ?> 
gια αρχή στο aside σου, γιατί δεν βλέπω να ορίζεις πόσα asides θα έχεις

και κάνε και

Κώδικας: Επιλογή όλων

<?php
// I am leaving Outside Index page, the category named 7
 $paged = intval&#40;get_query_var&#40;'paged'&#41;&#41;;
if&#40;$paged == 0&#41; &#123;
$paged = 1;
&#125;
query_posts&#40;"cat=-7&paged=$paged"&#41;;
?>
αντί για

Κώδικας: Επιλογή όλων

<?php  if &#40;is_home&#40;&#41;&#41; if &#40;in_category&#40;'7'&#41;&#41; continue; ?> 
EDITED:
Συμαντικό, το rewind_post είναι μέσα στο Header.php

ALR
Honorary Member
Δημοσιεύσεις: 1712
Εγγραφή: 09 Απρ 2005 17:30

Adding asides posts in the sidebar

Δημοσίευση από ALR » 17 Μαρ 2009 10:30

@Βασιλάκη,

τα βρήκα σκούρα, αλλά τελικά παιδευόμασταν άδικα!

Το Miniposts που αναφέρω πιο πάνω, μπορεί να χρησιμοποιηθεί και εκτός widget και μάλιστα έχει όλες τις απαραίτητες ρυθμίσεις και έναν εύχρηστο πίνακα ελέγχου για να πετύχεις όλα τα παραπάνω.
Με αυτόν εδώ--> http://wordpress.org/extend/plugins/miniposts/ τον τρόπο λοιπόν, κατάφερα να εμφανίζεται ο τίτλος και η περίληψη του τελευταίου aside post από 1 συγκεκριμένη κατηγορία, η οποία αποκρύπτεται από τη κεντρική σελίδα :)

Η αλήθεια είναι πως τα κατάφερα με τον τρόπο που περιγράφω, πριν γράψεις την απάντηση, οπότε και δεν την έχω δοκιμάσει( ακόμη! ).

Ως γνωστών άλλωστε, αν παίζει, δε το αγγίζουμε :)

Ευχαριστώ για τη βοήθεια!
Γίνονται πραγματάκια

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Adding asides posts in the sidebar

Δημοσίευση από Basilakis » 17 Μαρ 2009 14:33

Np at all!

όποιος έχει πρόβλημα με ένα googling e;iμαι σίγουρος πως θα βρεί λύση εδώ., hehe!

ALR
Honorary Member
Δημοσιεύσεις: 1712
Εγγραφή: 09 Απρ 2005 17:30

Adding asides posts in the sidebar

Δημοσίευση από ALR » 17 Μαρ 2009 16:25

Basilakis έγραψε:Np at all!

όποιος έχει πρόβλημα με ένα googling e;iμαι σίγουρος πως θα βρεί λύση εδώ., hehe!
Εννοείται, είναι το πλέον ολοκληρωμένο topic για πρόσθεση άρθρων στη sidebar με widgets, με plugins και με custom κώδικα :)
Γίνονται πραγματάκια

Απάντηση

Επιστροφή στο “WordPress γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες