Wie kann ich denn erreichen, dass wenn jemand über Google o.ä. einen Artikel meines Blogs (http://www.xyz.de/Artikelname) aufruft dass er dann nicht auf der Detailseite des Artikels, sondern auf der entsprechenden Kategorieseite (http://www.xyz.de/Kategoriex) landet?
Muss ich dass in der Index.php aufrufen und wenn ja wie? Oder gibt es einen andere Möglichkeit? Danke!
Kategorie laden statt Detailseite Artikel
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
Wie kann ich denn erreichen, dass wenn jemand über Google o.ä. einen Artikel meines Blogs (http://www.xyz.de/Artikelname) aufruft dass er dann nicht auf der Detailseite des Artikels, sondern auf der entsprechenden Kategorieseite (http://www.xyz.de/Kategoriex) landet?
Muss ich dass in der Index.php aufrufen und wenn ja wie? Oder gibt es einen andere Möglichkeit? Danke!1. dies schadet auf die Dauer bei Google sehr
wenn Du die Kategorien in Google haben magst, dann schau, dass diese mehr Backlinks haben als der Einzelartikellg
-
Danke für die Antwort.
Ich möchte in Google schon die einzelnen Artikel haben.
Jedoch möchte ich dass wenn ein einzelner Artikel direkt aufgerufen wird dass dann auch andere Elemente aus der Kategorie geladen werden.
Beim Aufruf der Kategorieseiten über archive.php mache ich dies z.B. über
if (is_category('xyz')) { ?> ....
Genau der gleiche Befehl bewirkt jedoch in der index.php nichts. Wie ermittle ich denn dort zu welcher Kategorie der Artikel gehört der direkt aufgerufen wurde?
Vielen Dank -
Gibt es hierfür so etwas wie category=category(this), und wenn ja wie ist die Syntax?
thx -
Gibt es hierfür so etwas wie category=category(this), und wenn ja wie ist die Syntax?
thx
Du kannst innerhalb der Seite (linke oder rechte Seite oder unterhalb des Beitrags) einen zusätzlichen Loop durchführen. (Den Befehl query_posts vor dem Loop nicht vergessen ;-))VG Elke
Edit:
Übrigens: ich würde ein solches Verhalten mit einem sofortigen Abbruch quittieren. Ich hasse so etwas.... -
ja schon, aber wieso kann ich keine Bedingung auf die category setzen, erkennt er diese gar nicht wenn ich den Artikel direkt aufrufe bzw. ist dann standardmäßig keine Kategorie gewählt?
Bzw. wie kann ich in diesem Fall diese erkennen in meiner if (is_category('xyz')) { ?> .... bzw. mit welchem Befehl setzen so etwas in der Art category = category des aktuellen Artikels?
Wisst ihr was ich meine?
übrigens wegen Abbruch durch nutzer: Der gesuchte Artikel kommt schon, nur halt mit Zusatzinformationen die von der Kategorie abhängig sind.. -
Also:
An die gewünschte Stelle setzt Du folgenden Code (oder so ähnlich)PHP
Alles anzeigen<?php global $post; $category = get_the_category(); query_posts('cat='.$category[0]->cat_ID.'&showposts=10'); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div class="post" id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('j. F Y') ?> <!-- von <?php the_author() ?> --></small> <div class="entry"> <?php the_content('Den ganzen Beitrag lesen »'); ?> </div> <p class="postmetadata">Kategorie <?php the_category(', ') ?> <strong>|</strong> <?php comments_popup_link('0 Kommentare »', '1 Kommentar »', '% Kommentare »'); ?> <?php edit_post_link('Bearbeiten','<strong>|</strong> ',''); ?> </p> </div> <?php endwhile; ?> <?php endif; ?>Weitere Infos zur Funktion get_the_category findest Du im Codex
Der Code ist übrigens ungetestet, soll Dir im Wesentlichen auch nur zeigen, wie ich das Problem lösen würde. ;-)
VG Elke
-
sorry, vielleicht stelle ich mich auch zu doof an (aber du schreibst ja zum Glück es gibt keine dummen Fragen :-), ich habe jetzt in meiner index.php
<?php get_header(); ?>[COLOR=red]<?php
$category = get_the_category();
?>[/COLOR]<div id="content">
.....
<?php
if (is_category('xyz')) { ?>
.....;
<?php } ?>
.....
Und trotzdem zieht er da die Kategorie nicht, was er sonst in der archive.php macht. Oder muss ich is_category() durch irgendwas ersetzen wie if $category = xyz? Wie lautet die genaue Syntax?Danke für die letzte Rettung
-
Also:
Wenn Du einen Artikel in der Single-Ansicht darstellst, kennt zunächst das Programm die dazugehörige Kategorie nicht. Im Normalfall ist sie auch absolut unwichtig für die Anzeige des Artikels.Aus diesem Grund kannst Du auch die Abfrage
vergessen.
In diesem Zusammenhang frage ich mich, wozu Du auf diese Art und Weise auf die Kategorie abfragen willst.
Und deswegen und bevor wir ständig aneinander vorbei reden, beschreibe so exakt wie möglich, was Du wo vorhast und vergiss zunächst Deinen Ansatz. Denn sonst kann ich Dir nicht wirklich weiterhelfen, wobei ich eigentlich meine, dass Dir alle Werkzeuge zur Verfügung stehen müssten. Du musst sie nur an die richtige Stelle setzen.
Vielleicht wäre es auch nützlich, wenn Du Dir die Funktionen im Codex genauer ansehen würdest. Zusätzlich wird auf der angegebenen Seite auf ähnliche Funktionen verlinkt. Vielleicht findest Du ja auch dort das Richtige?VG Elke
Edit:
Schau Dir mal die Hierarchie der Template-Dateien an. Ich habe den Eindruck (kann falsch sein), dass Dir nicht klar ist, wann welche php-Datei aufgerufen wird. Und das ist für die Lösung die Grundlage Deines Problems.
Die Infos dazu findest Du entweder bei mir oder natürlich im Codex. ;-) -
Ok. Danke dass du so viel Geduld mit mir hast.
Ich möchte - wenn ein Artikel direkt aufgerufen wird - dass ich dazu abhängig von der Kategorie dieses Artikels andere passende Elemente wie HTML-, Werbeblöcke, JavaScript etc. zusteuern kann. Ich nutze hier Wordpress mehr als CMS. Deswegen brauche ich auch in der index php auf jeden Fall eine if-Abfrage auf die Kategorie in der Art
[COLOR=#000000][FONT=Courier New][COLOR=#0000cc]<?php [/COLOR][/FONT]
[FONT=Courier New][COLOR=#006600]if ([/COLOR][COLOR=#0000cc]is_category[/COLOR][COLOR=#006600]([/COLOR][COLOR=#cc0000]'xyz'[/COLOR][COLOR=#006600])) { [/COLOR][/FONT][FONT=Courier New][COLOR=#0000cc]?>[/COLOR][/FONT]
[FONT=Courier New].....;[/FONT]
[FONT=Courier New][COLOR=#0000cc]<?php [/COLOR][COLOR=#006600]} [/COLOR][COLOR=#0000cc]?>[/COLOR] [/FONT][/COLOR][COLOR=#000000][FONT=Courier New]Fällt dir eine Alternative ein?[/FONT][/COLOR]
[FONT=Courier New][/FONT]
[FONT=Courier New]Deine Template-Hierarchie ist übrigens sehr wertvoll, Danke. Löst aber glaube ich mein hier geschildertes Problem nicht da ich egal ob page.php oder index.php augferufen wird die Kategorie nicht mit übergeben wird wenn ich dich richtig verstehe?[/FONT] -
Hat sonst noch jemand eine Idee, wie ich aus einem Einzelartikelaufruf heraus eine if-Abfrage auf die zugehörige Kategorie machen kann?
-
Bin nach langem Ausprobieren selber draufgekommen, redcat63 Danke nochmal für deinen Tipp!:
<?php
if ($category[0]->cat_ID=xyz) { ?> ....
Ganz einfach eigentlich wenn man die Syntax kennt..
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!