Seite 1 von 1

WP / Anzahl Posts abhängig von Category

Verfasst: 13.08.2010, 13:32
von bydlo
Guten Morgen Allerseits,
ich würde gerne in der Kategorie X (inkl. Unterkategorien) nur 5 Posts anzeigen und in der Kategorie Y (inkl. aller Unterkategorien) 50 Posts (ist ne Bildergalerie).
Habe gerade das in die functions.php eingetragen:

Code: Alles auswählen

function limit_posts_per_page() {
          if ( is_category(array(1,3,8,9,15,21,22,23,24,16,17,18,19,20,26,27,28,25,29,30,31)) )
              return 50;
          else
              return 5;
      }

      add_filter('pre_option_posts_per_page', 'limit_posts_per_page');
Es gibt mir allerdings nun in allen Kategorien 5 Beiträge aus.
Was mach ich falsch?
Gruss axel

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 13.08.2010, 14:04
von profo
Hmm, kümmer Dich mal zusätzlich um posts_per_archive_page:

Code: Alles auswählen

add_filter('pre_option_posts_per_archive_page', 'limit_posts_per_page');
Ist aber nur ein Schuss ins Blaue... Wenn das nicht hilft könnte ich mir vorstellen, dass is_category im Hook nicht funktioniert? Dann müsstest Du da ein wenig rumtricksen...

Verfasst: 13.08.2010, 14:36
von bydlo
ich habe das versucht:

Code: Alles auswählen

function limit_posts_per_page() {
      	if ( is_category(array(1,3,8,9,15,21,22,23,24,16,17,18,19,20,26,27,28,25,29,30,31)) )
      		return 50;
      	else
      		return 5;
      }

      add_filter('pre_option_posts_per_archive_page', 'limit_posts_per_page');

function limit_posts_per_page() {
      	if ( is_category(array(1,3,8,9,15,21,22,23,24,16,17,18,19,20,26,27,28,25,29,30,31)) )
      		return 50;
      	else
      		return 5;
      }

     add_filter('pre_option_posts_per_page', 'limit_posts_per_page');
und das:

Code: Alles auswählen

function limit_posts_per_page() {
      	if ( is_category(array(1,3,8,9,15,21,22,23,24,16,17,18,19,20,26,27,28,25,29,30,31)) )
      		return 50;
      	else
      		return 5;
      }

     add_filter('pre_option_posts_per_page', 'limit_posts_per_page');
      add_filter('pre_option_posts_per_archive_page', 'limit_posts_per_page');
und noch ein Paar andere sachen die einem engagierten aber ahnungslosen PHP-Neuling eigfallen.
Entweder Errors oder falsche Ergebnisse.

Zum rumtricksen reicht mein Knowhow nicht.
Es sei denn jemand kaut mir den Code vor.

Gruss axel

Verfasst: 13.08.2010, 14:46
von profo
Der Teufel wird wie so oft im Detail stecken... Ich würd an Deiner Stelle einfach mit ein wenig Debugging loslegen und mal schauen, was im query.php (function is_category()) passiert.

Verfasst: 13.08.2010, 14:53
von bydlo
hatte ich schon folgendes erwähnt:?
"ahnungsloser PHP-Neuling"

Ich forsche jetzt schon an der Grenze zu fremden Universen ;-)

Verfasst: 13.08.2010, 18:04
von profo
Kleiner Wochenendhack:

Code: Alles auswählen

function limit_posts_per_page() {
    $result = -1;
    if ( is_category() ) {
        $categoryName = get_query_var("category_name");
        if ( $categoryName ) {
            $category = get_category_by_path( $categoryName, false );
            if ( $category ) {
                $fiftyPostsPerPage = array(1,3,8,9,15,21,22,23,24,16,17,18,19,20,26,27,28,25,29,30,31);
                $catid = $category->cat_ID;
                if ( in_array($catid, $fiftyPostsPerPage, false) ) {
                    $result = 50;
                } else {
                    $result = 5;
                }
            }
        }
    }
    return $result;
}

add_filter('pre_option_posts_per_page', 'limit_posts_per_page');
Viel Spaß :)

Verfasst: 16.08.2010, 08:51
von bydlo
Herzlichen Dank
Funktioniert super.

Hatte zwar zwischenzeitlich auch ein Plugin gefunden aber ich nutze lieber die Version ohne Plugins.
Spart man sich den ganzen Update Stress
Viele Grüsse
axel