Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

WP / Anzahl Posts abhängig von Category

Informationen & SEO Tipps zum Einsatz und Verwendung von Blog-, Wiki und Content Management Systemen wie Drupal, Typo3, Wordpress, Reddot, Joomla, Moin Moin, phpWiki sowie Shop-Systemen wie z.B. XT-Commerce, Magento, ePages, Intershop, 1&1 Shops.
Neues Thema Antworten
bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 13.08.2010, 13:32

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


profo
PostRank 9
PostRank 9
Beiträge: 1703
Registriert: 18.01.2007, 18:51

Beitrag von profo » 13.08.2010, 14:04

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...

bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 13.08.2010, 14:36

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

profo
PostRank 9
PostRank 9
Beiträge: 1703
Registriert: 18.01.2007, 18:51

Beitrag von profo » 13.08.2010, 14:46

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.

bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 13.08.2010, 14:53

hatte ich schon folgendes erwähnt:?
"ahnungsloser PHP-Neuling"

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

profo
PostRank 9
PostRank 9
Beiträge: 1703
Registriert: 18.01.2007, 18:51

Beitrag von profo » 13.08.2010, 18:04

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ß :)

bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 16.08.2010, 08:51

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

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag