Support » Allgemeine Fragen » Kategorieseite zeigt nicht alles an

  • Hallo, ich habe folgendes Problem. Ich habe ein Template erstellt, funktioniert auch wunderbar, nur werden auf den Kategorieseiten (exakt gleiches Template wie die index.php) einige inhalte in der Sidebar und im Footer aus irgend einem Grund nicht angezeigt.

    Einmal (Plugin: Opening Hours) wird einfach garnichts angezeigt, beim anderen (Plugin: Very Simple Event List) zeigt er anstatt den Events nur an „Es gibt keine zukünftigen Events.“, obwohl diese Auf der Startseite ganz normal angezeigt werden. Dies passiert ebenfalls wenn ich die category.php ganz lösche und das Template somit auch für die Kategorieseiten auf die index.php zurückgreifen lasse. Hat hier jemand eine Idee woran dieses seltsame Phänomen liegen könnte?

    Leider kann ich hier keinen Link zu der Seite posten, da diese noch nicht für die Öffentlichkeit zugänglich ist. Sollte aber jemand eine Idee haben kann ich Zugangsdaten für einen Gastaccount schicken.

    Mit freundlichen Grüßen
    Alexander Künzel

    EDIT: Ich glaube es liegt daran, dass diese Plugins mit „Custom Post Types“ arbeiten und deren Inhalte daher nicht die entsprechende Kategorie haben und daher nicht angezeigt werden. Aber wie lässt sich dieses Problem lösen?

    • Dieses Thema wurde geändert vor 5 Jahren, 8 Monaten von akuenzel.
Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Hallo Alexander,

    ohne den Code deines Templates kann ich nur spekulieren: hast du vielleicht vergessen, get_sidebar() oder wp_footer() in dein Template einzufügen? Verwendest du ein Plugin, um die Anzeige von Widgets zu steuern (z.B. Widget Logic)? Manchmal reicht es auch für eine „merkwürdige Anzeige“, wenn du eine WP_Query ausführst und vergisst, sie danach zurückzusetzen.

    … nur werden auf den Kategorieseiten (exakt gleiches Template wie die index.php) …

    Normalerweise wird für die Anzeige von Kategorie-Seiten das Template category.php oder archive.php verwendet. Was meinst du mit „exakt gleiches Template wie die index.php“? Welches Template wird denn da verwendet? Was steht in deinem Template? Wofür hast du ein Template, das „exakt gleich“ ist, wie index.php?

    Sollte aber jemand eine Idee haben kann ich Zugangsdaten für einen Gastaccount schicken.

    Das ist ausdrücklich nicht gewünscht:
    https://de.wordpress.org/support/topic/kannst-du-mich-nicht-anrufen-oder-mal-schnell-bei-mir-einloggen/

    Ich glaube es liegt daran, dass diese Plugins mit „Custom Post Types“ arbeiten und deren Inhalte daher nicht die entsprechende Kategorie haben und daher nicht angezeigt werden.

    Das ist alles sehr wirr. Vielleicht magst du mal erzählen, was du eigentlich vorhast? 🙂

    Thread-Starter akuenzel

    (@akuenzel)

    Hallo,

    also ich habe ein komplett selbst erstelltes Theme. Mit „exakt gleich wie die index.php“ meinte ich, dass ich ursprünglich garkeine category.php erstellt habe, da es da eigentlich nichts gibt was anders sein soll als auf der Startseite selbst. Trotzdem funktionieren einige Dinge nicht.

    In meiner Fußzeile habe ich einen Shortcode im Template integriert (in der footer.php) der die Ausgabe von Öffnungszeiten bewirkt. In der Sidebar ist ein Widget, welches die nächsten drei Veranstaltungen die über das Plugin angezeigt werden ausgibt. Doch diese Funktionieren einfach nicht, sobald die Kategorienseite angezeigt wird.

    Das Verwirrende daran ist also, das auf der Startseite (index.php) alles funktioniert, sobald ich bei einem Beitrag aber auf die Kategorie klicke und nur noch Beiträge dieser Kategorie angezeigt werden (wenn category.php nicht da ist, wird ja da auch einfach die index.php genommen) funktionieren die oben beschriebenen Plugins nicht mehr.

    Ich hoffe das ist jetzt etwas verständlicher.

    P.S. Der Gastaccount sollte nicht für „Privaten Support“ sein, sondern lediglich dazu dienen, die Seite sehen zu können, da diese im Wartungsmodus ist 😉

    EDIT:
    Hier zwei Links zu Screenshots, die das Problem zeigen:

    Startseite:
    Screenshot Startseite

    Kategorieseite:
    Kategorieseite

    • Diese Antwort wurde geändert vor 5 Jahren, 8 Monaten von akuenzel.
    • Diese Antwort wurde geändert vor 5 Jahren, 8 Monaten von akuenzel.

    Ich verstehe das richtig, dass bei beiden Ansichten index.php verwendet wird? Hast du das geprüft (z.B. mit Query Monitor oder What the File)?

    Dann sei doch bitte mal so nett und poste den Inhalt der index.php. (Nach Möglichkeit [code]-Button zur Formatierung verwenden.)

    Thread-Starter akuenzel

    (@akuenzel)

    Es muss bei beiden Ansichten die index.php verwendet werden, da die category.php garnicht existiert, die habe ich wieder gelöscht.

    Hier der Code meiner index.php

    <?php get_header(); ?>
    
    <script type="text/javascript">
    	      window.onscroll = function ()
    	      {
    		     
    		if ( window.XMLHttpRequest ) {
    			if ( document.documentElement.offsetWidth > 600 ) {
    				             
    				if ( document.documentElement.scrollTop > 300 || self.pageYOffset > 300 ) {
    					                      $( "h2.head" ).fadeOut( "fast" ) &&
    						$( '#header' ).css( 'height', '80px' ) &&
    						$( '#header' ).css( 'transition', 'all ease 0.6s' );
    					             
    				} else if ( document.documentElement.scrollTop < 300 || self.pageYOffset < 300 ) {
    					                      $( "h2.head" ).fadeIn( "fast" ) &&
    						$( '#header' ).css( 'height', '150px' ) &&
    						$( '#header' ).css( 'transition', 'all ease 0.6s' );
    				}
    				             
    			}
    			     
    		}
    	}
    </script>
    
    <div id="slidebox">
    	<?php echo do_shortcode('[crellyslider alias="slideshow"]'); ?>
    </div>
    <div id="content">
    	<div id="gottesdienstanzeiger">
    		<?php wp_nav_menu( array('menu' => 'menu_gottesdienstanzeiger' )); ?>
    	</div>
    	<div id="wrapper">
    		<div id="seiteninhalt">
    			<div id="beitragsfeed">
    
    				<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    				<div class="post">
    					<span class="category"><?php the_category( ', ' ); ?></span>
    					<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
    						<?php the_post_thumbnail('thumbnail', array('class' => 'beitragsbild')); ?>
    					</a>
    					
    					<h1 class="title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>
    					<?php the_excerpt('| weiterlesen...'); ?>
    
    					
    				</div>
    				<?php endwhile; endif; ?>
    			</div>
    			<div id="load-more-area">
        <div id="loadmore"><span>Mehr laden...</span></div>
    </div>
    		</div>
    		
    	</div>
    	<div id="sidebar">
    		<div id="logo">
    			<?php the_custom_logo()?>
    		</div>
    		<?php dynamic_sidebar( 'search-widget-area' ); ?>
    		<?php dynamic_sidebar( 'sidebar-widget-area' ); ?>
    	</div>
    </div>
    </div>
    
    <script type="text/javascript">
    	      window.onload = function ()
    	      {
    		if ( window.XMLHttpRequest ) {
    			if ( document.documentElement.offsetWidth > 600 ) {
    
    				$( "h2.head" ).css( 'display', 'block' ) &&
    					$( '#header' ).css( 'height', '150px' ) &&
    					$( '#wrapper' ).css( 'margin-top', '0px' ) &&
    					$( '#sidebar' ).css( 'margin-top', '0px' ) &&
    					$( '#pfeil' ).fadeIn( "fast" );
    			}
    		}
    	}
    </script>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
    <script>
    	function scrollWin() {
    		window.scrollTo( 0, 370 );
    	}
    </script>
    <?php get_footer(); ?>
    Thread-Starter akuenzel

    (@akuenzel)

    Hier auch noch Footer und Header

    Footer:

            <div id="foot">
                <div id="footer">
                    <div id="footer_content">
                        <li class="footer-container"><h1 class="footer">&Ouml;ffnungszeiten Pfarrb&uuml;ro</h1><?php echo do_shortcode('[op-overview set_id="186"]'); ?><?php echo do_shortcode('[op-is-open set_id="186" open_text="Jetzt sind wir für Sie da." closed_text="Derzeit haben wir geschlossen." show_next="true" next_format="Wir sind am <b>%2$s</b> den <b>%1$s</b> um <b>%3$s Uhr</b> wieder für Sie da."]'); ?></li>
                        <?php dynamic_sidebar( 'footer-widget-area' ); ?>
                    </div>
                </div>
                <div id="copyright">
                    <div id="copyright_content">
                        <p>&copy; 2018 Pfarreiengemeinschaft Marktoberdorf</p>
                    </div>
                </div>
            </div>
    <?php dynamic_sidebar( 'cookies-widget-area' ); ?>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
    <script type="text/javascript">
        var active = false;
        
        $("#menu_button_mobile").on("click", function(){
            if(active){
                $("#navigation_content").slideToggle()
                
            }else{            
                $("#navigation_content").slideToggle()
            }
            active = !active;
        })
        
    </script>
    
    <script type="text/javascript">
        var anzahl = 6;
        var gesamt = $(".post").length;
    	
    	if(anzahl >= gesamt) {
                $("#loadmore").css('display','none');
            }
        
        $("#loadmore").on("click", function(){
            anzahl = anzahl + 6;
            $(".post:nth-child(-n+" + anzahl + ")").css('display','block');
            
                          if(anzahl >= gesamt) {
                $("#loadmore").css('display','none');
            }
    	})
            
            
        
    </script>
            
        <?php wp_footer(); ?>
        </body>
    </html>

    Header:

    <!DOCTYPE HTML>
    <html>
    	<head>
            
            <!-- Allgemein -->
    		<meta charset="UTF-8">
    		<title><?php bloginfo('name'); ?></title>
    		<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
            <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/mobile.css" type="text/css" media="screen" />
            <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/tablet.css" type="text/css" media="screen" />
            <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/sonderfall.css" type="text/css" media="screen" />
    		<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
            <link href="https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&subset=latin-ext" rel="stylesheet">
            <link href="https://fonts.googleapis.com/css?family=Libre+Baskerville" rel="stylesheet"> 
            <script src="//code.jquery.com/jquery-latest.js"></script>
            
            <!-- Mobile -->
            <meta name = "viewport" content = "user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width">
            <meta name="apple-mobile-web-app-capable" content="yes" />
            <meta name="apple-mobile-web-app-status-bar-style" content="black" />
            <meta name="format-detection" content="telephone=no" />
            <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Allerta">
            <script type="text/javascript">
                window.scrollTo(0,1);
                function MM_changeProp(objId,x,theProp,theValue) { //v9.0
                  var obj = null; with (document){ if (getElementById)
                  obj = getElementById(objId); }
                  if (obj){
                    if (theValue == true || theValue == false)
                      eval("obj.style."+theProp+"="+theValue);
                    else eval("obj.style."+theProp+"='"+theValue+"'");
                  }
                }
                function MM_showHideLayers() { //v9.0
                  var i,p,v,obj,args=MM_showHideLayers.arguments;
                  for (i=0; i<(args.length-2); i+=3) 
                  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
                    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
                    obj.visibility=v; }
                }
            </script>
            
            <!-- WordPress -->
            <?php wp_head(); ?>
    	</head>
        
        <body>
            <div id="head">
                <div id="header">
                    <div id="header_content">
                        <span>
                            <h1 class="head"><?php bloginfo('name'); ?></h1>
                            <h2 class="head"><?php bloginfo('description'); ?></h2>
                        </span>
                    </div>
                </div>
                <div id="navigation">
                    <div id="menu_button_mobile">
            <table>
                <tr>
                    <td>
                        <div id="icon"></div>
                        <div id="icon"></div>
                        <div id="icon"></div>
                    </td>
                    <td>
                        <p>Menü</p>
                    </td>
                </tr>
                        </table></div>  
                    <div id="navigation_content">
                        <?php wp_nav_menu( array('menu' => 'mainmenu' )); ?>
                    </div>
                </div>
            </div>
                

    Was mir direkt auffällt: du hast an willkürlichen Stellen JavaScript eingebunden. Statt dessen solltest du das JavaScript in eine eigene Datei packen und dann mit wp_enqueue_script() aufrufen. Das gleiche gilt für Stylesheets mit wp_enqueue_style(). (vgl. https://www.wpbeginner.com/wp-tutorials/how-to-properly-add-javascripts-and-styles-in-wordpress/)

    echo do_shortcode('[crellyslider alias="slideshow"]'); ist auch etwas „von hinten durchs Ohr geschossen“ – schau doch mal, welche Funktion der Shortcode aufruft und verwende die Funktion direkt, statt den Umweg über do_shortcode() zu nehmen.

    Ansonsten kann ich im bisher zur Verfügung gestellten Code keine Fehler entdecken.

    Schau dir mal die Sidebar-Templates an, vielleicht fällt dir da noch was auf.

    Thread-Starter akuenzel

    (@akuenzel)

    Okay, ja vielleicht sollte ich das nochmal überarbeiten. Ein Sidebar Template hab ich nicht, da ich das alles direkt über <?php dynamic_sidebar... an den entsprechenden Stellen eingebunden habe.

    Aber ich vermute wirklich, dass es daran liegt, dass diese beiden Sachen nicht angezeigt werden, weil diese Plugins für ihre Inhalte Kategorien unterstützen, den Inhalten aber keine Kategorie zugewiesen ist. Aber ich kann auch nicht jedes mal wenn eine neue Kategorie erstellt wird diese den Inhalten der Plugins zusätzlich zuweisen. Da muss irgend eine andere Lösung her 😉

    Trotzdem schon mal vielen Dank!

    • Diese Antwort wurde geändert vor 5 Jahren, 8 Monaten von akuenzel.
    • Diese Antwort wurde geändert vor 5 Jahren, 8 Monaten von akuenzel.

    … da ich das alles direkt über <?php dynamic_sidebar… an den entsprechenden Stellen eingebunden habe.

    Ups, peinlich … ich hatte das mit get_sidebar() verwechselt; sorry!

    weil diese Plugins für ihre Inhalte Kategorien unterstützen

    das verstehe ich noch weniger?

    Thread-Starter akuenzel

    (@akuenzel)

    Ok, das mit den Kategorien war eine falsche Vermutung. Ich meinte damit, dass ich wenn ich ein Event erstelle, diesem eine Kategorie zuweisen kann. Daher dachte ich wird es auf der Kategorieseite nicht angezeigt, weil es keine Kategorie zugewiesen hat. Aber selbst wenn ich dem Event die entsprechende Kategorie zuweise ändert das nichts. Daher scheint das Problem wohl doch auch nicht daran zu liegen.

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Das Thema „Kategorieseite zeigt nicht alles an“ ist für neue Antworten geschlossen.