XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   PHP-Skript zum Entfernen von "Deppenlinks" in den Navi-Menüs (http://xhtmlforum.de/showthread.php?t=73433)

AndreasB 03.03.2018 10:12

Zitat:

Zitat von protonenbeschleuniger (Beitrag 551956)
Nein, ich deute an, dass du mit WP alles machen kannst.

Theoretisch vielleicht. Praktisch ist mir bisher noch nicht ein einzige Site untergekommen, die schlankes HTMl ausgibt. Entweder ist WP-Verwendern schlanker und schöner HTML-Code völlig wumpe oder es wäre extrem aufwändig, WP den Kuddelmuddelcode auszutreiben.
Hinweis: hier spreche ich nicht vom Deppenlink, sondern ganz allgemein von der Codequalität von WP.

Zitat:

Aber ich glaube nicht das es so ein Plugin wirklich schon gibt, weil es eben keinen Nutzen für sowas gibt.
Findest Du selber es denn gut und richtig einen Link zu zeigen, obwohl man sich auf der Seite gerade befindet?


Zitat:

Das der Content auch mit HTML ausgezeichnet wird (z.b. Bilder, Tabellen, Listen oder auch einfach Absätze) ist nicht ungewöhnlich. Dafür hat WP auch einen Editor im Backend und zur Not kkannst du diesen auch auf Quelltextbearbeitung umstellen und HTML Code eingeben soviel du willst.

Ich verstehe nicht genau worauf du hinaus willst.
Ich will darauf hinaus, ob sich in WP die "nötigen PHP-Klassen" integrieren lassen, damit ein RegEx nur den Inhalt nicht aber Tags trifft.

Beispiel:
HTML-Code:

<p class="lorem">Lorem</p>
Ein regulärer Ausdruck "lorem" darf nur den Inhalt treffen, keinesfalls den Wert des Attributes.
Ist jetzt klar, was ich meine? Es geht um typografische Ersetzungen.

Mit den Deppenlinks hat diese Sache nichts zu tun.

Vielleicht ist es zu kompliziert hier weiterzumachen. Das Verständigen ist so mühsam und ich möchte Dich nicht weiter nerven.

MrMurphy 03.03.2018 10:19

Hallo

Zitat:

Findest Du selber es denn gut und richtig einen Link zu zeigen, obwohl man sich auf der Seite gerade befindet?
Ich - ja. Hast du denn mal eine Beispielseite wo es besonders stört?

Du willst einfach nicht erkennen, dass es überhaupt keine Deppenlinks gibt.

Die wurden von einer unwissenden Minderheit erfunden und zu einem Problem erklärt, dass es in der Praxis überhaupt nicht gibt.

Gruss

MrMurphy

protonenbeschleuniger 03.03.2018 11:10

Zitat:

Zitat von AndreasB (Beitrag 551957)
Theoretisch vielleicht. Praktisch ist mir bisher noch nicht ein einzige Site untergekommen, die schlankes HTMl ausgibt. Entweder ist WP-Verwendern schlanker und schöner HTML-Code völlig wumpe oder es wäre extrem aufwändig, WP den Kuddelmuddelcode auszutreiben.
Hinweis: hier spreche ich nicht vom Deppenlink, sondern ganz allgemein von der Codequalität von WP.

Das kommt von den Templates. WP gibt relativ wenig HTML Code aus. Insofern hat das nichts mit WP an sich zu tun, sondern mit den Wünschen der Leute die diese Templates benutzen.

Zitat:

Zitat von AndreasB (Beitrag 551957)
Findest Du selber es denn gut und richtig einen Link zu zeigen, obwohl man sich auf der Seite gerade befindet?

Was meinst du den mit zeigen?

Ich rede vom Inhalt, wenn diu Texte einginbst die einen Link auf die aktuelle Seite enthalten ist das merkwürdig. Wenn im Menü auch der Link zur aktuellen Seite ist, würde ich diesen markieren (was WP ohne Probleme zuläßt, das dieser mit einer eigenen CSS Klasse markiert wird). Ansonsten sehe ich das Problem nicht. Woher soll denn dieser ominöse Links sonst kommen?


Zitat:

Zitat von AndreasB (Beitrag 551957)
Ich will darauf hinaus, ob sich in WP die "nötigen PHP-Klassen" integrieren lassen, damit ein RegEx nur den Inhalt nicht aber Tags trifft.

Beispiel:
HTML-Code:

<p class="lorem">Lorem</p>
Ein regulärer Ausdruck "lorem" darf nur den Inhalt treffen, keinesfalls den Wert des Attributes.
Ist jetzt klar, was ich meine? Es geht um typografische Ersetzungen.

Das ist Inhalt, wieso willst den parsen?
"Typografisch" kannst du darauf mit CSS zugreifen.

Warum willst du denn das HTML Dokument mit PHP parsen? Das macht für uns keinen Sinn.

protonenbeschleuniger 03.03.2018 11:14

Zitat:

Zitat von AndreasB (Beitrag 551957)
Ich will darauf hinaus, ob sich in WP die "nötigen PHP-Klassen" integrieren lassen, damit ein RegEx nur den Inhalt nicht aber Tags trifft.

Beispiel:
HTML-Code:

<p class="lorem">Lorem</p>
Ein regulärer Ausdruck "lorem" darf nur den Inhalt treffen, keinesfalls den Wert des Attributes.

Dazu noch einen Satz. Das macht doppelt keinen Sinn.

Du baust ein Template, das ist die HTML Grundstruktur. Dieses wird von WP mit dem Inhalt gefüllt. D.h. du hast im Template so etwas stehen:

Code:

<p class="lorem"><?php the_text(); ?></p>
Dann nachträglich am erzeugten HTML Code etwas ändern macht wenig Sinn. Warum willst du das tun?
Du solltest dich wirklich mal mit einem CMS beschäftigen und wenn du die Muse aufbringst ein einfaches Template basteln. Dann siehst du die Dinge bestimmt klarer.

etux 04.03.2018 10:52

@AndreasB
Zum Links ersetzen im Logo und in der Navigation.

Wenn Du mit Wordpress arbeitest, ist das relativ einfach. Du fragst ab, ob es die Frontpage ist oder eine andere:

- Logo
https://codex.wordpress.org/Function.../is_front_page

Frontpage → kein Link
Alle Andere → Link

-Menüs
Die Wordpress Menus verwende ich nie. Ich lasse mir die IDs der Seiten als Array ausgeben und dann baue ich mir die Navi, so wie ich sie haben möchte. Dann eben ohne auf sich selbst zeigende Links.

In einer Wordpress-Instalation habe ich beispielsweise folgende Konfiguration in der functions.php:
PHP-Code:

<?php

// Custom Wordpress-Menu
function custom_menu($menu_name) {
    
    
$locations get_nav_menu_locations();
    
$menu wp_get_nav_menu_object$locations$menu_name ] );
    
$menu_items wp_get_nav_menu_items($menu->term_id);
    foreach (
$menu_items as $key => $value) {
        
$include_pages[] = get_post_meta($value->ID'_menu_item_object_id'true);
    }

  
$pages get_pages(array(
        
'include' => $include_pages,
        
'sort_column' => 'menu_order'
    
));
    
    foreach(
$pages as &$page) :
        
        
$li_class $page->post_name;
        
$a_title get_post_meta$page->ID'page_subtitle'true );
        
        
$custom_menu .= '<li class="' $li_class '" role="menuitem">';
        
        
$cur get_the_ID();
        
$cur_par get_post$cur )->post_parent;
        
        
$article get_page_by_title'Artikel' );
        
        if ( 
is_single() && $page->ID == $article->ID ) :
            
$custom_menu .= '<a href="' get_page_link($page->ID) . '" title="' $a_title '"><em>' $page->post_title '</em></a><span class="hidden">. </span>';
        elseif ( 
$page->ID == $cur ) :
            
$custom_menu .= '<strong title="Die aktuelle Seite">' $page->post_title '</strong><span class="hidden">. </span>';
        else :
            
$custom_menu .= '<a href="' get_page_link($page->ID) . '" title="' $a_title '">' $page->post_title '</a><span class="hidden">. </span>';
        endif;
        
$custom_menu .= '</li>';
    endforeach;
    
    
print_r($custom_menu);
}

Eingebunden wird das Menü mit:
PHP-Code:

<ul id="custom-menu" role="menu">
    <?php echo custom_menu('menuname'); ?>
</ul>


‚menuname‘ - ist der Name, den Du im Wordpress-Backend für das Menü festgelegt hast („Design“ → „Menüs“)


.

AndreasB 04.03.2018 11:07

Hallo Emil.
Herzlichen Dank für Dein Beispiel :)

Ich muss mich noch näher mit PHP beschäftigen um es verwenden zu können.

Aus Neugier:
Worin vermutet ihr den Grund, dass die Entwickler des WP-Core solche Basisfunktionalität nicht integrieren?

Mir fällt zumindest keine Situation ein, wo dadurch der Code nicht aufgewertet würde.

Am Rande zur Barrierearmut:
Können Screenreader mittlerweile ein bestimmtes Markup innerhalb einer Nav als "Hier bin ich gerade" interpretieren?

class="current" ist ja nicht in der Spezifikation definiert, sondern frei gewählt.

MrMurphy 04.03.2018 12:10

Hallo

Auch wenn du damit überfordert bist:

Du siehst Probleme die es überhaupt nicht gibt. Für Probleme, die es nicht gibt braucht es auch keine Lösungen.

Ähnlich wie Verschwörungstheoretiker bist du leider auch nicht in der Lage die Realität zu erkennen und zu akzeptieren.

Gruss

MrMurphy

AndreasB 04.03.2018 12:22

@MrMurphy
Du argumentierst bisher gar nicht, sondern behauptest einfach nur.

Kein Problem, Dich interessiert die Sache einfach nicht. Ich suche keinen Streit.

MrMurphy 04.03.2018 12:56

Hallo

Was für eine Argumentation zu nicht existierenden Problemen erwartest du denn? Geht gar nicht. Ich kann dir deshalb nur Realitäten aufzeigen, die du nicht akzeptieren wirst.

Es geht mir auch nicht darum dich zu bekehren, sondern Dritten aufzuzeigen, dass du falsch liegst.

Realität ist, dass du meine Frage nach einer Seite mit störenden Deppenlinks nicht beantwortet hast.

Realität ist, dass dich die vielen Deppenlinks hier im Forum (Logo, Kontrollzentrum, Mitgliederkarte, Hilfe - um nur einige zu nennen) offensichtlich nicht stören und du keine Probleme hast das Forum trotzdem zu nutzen.

Realität ist, dass es zu so einem wichtigen Thema wie Deppenlinks keinen Eintrag in Wikipedia gibt.

Realität ist, dass in keiner Userumfrage zu Problemen oder Verbesserungswünschen mit Webseiten Deppenlinks genannt werden.

Realität ist, dass Deppenlinks nur von einer Minderheit von Webseitenerstellern als vermeintliches Problem erkannt werden, nicht aber von Besuchern von Webseiten.

Realität ist, dass in den komplett frei zugänglichen Unterlagen der Regelersteller von HTML und CSS (WHATWG und W3C) Deppenlinks nicht genannt werden und deshalb auch keine Lösungen von Deppenlinks in Arbeit oder auch nur geplant sind.

Realität ist, das alle bekannten und teilweise millionenfach verbreiteten Content Management Systeme, Weblogs und andere Deppenlinks enthalten, die weder die Anwender noch die Besucher stören. Sonst würden sich die Anwender ja für Anwendungen ohne Deppenlinks entscheiden.

Gruss

MrMurphy

AndreasB 04.03.2018 13:42

@MrMurphy
Fakt ist, dass ein Link zur gleichen Seite, auf der man sich befindet, für einen Screenreadernutzer innerhalb seiner Linkliste(n) auftaucht.

Ob er das billigend in Kauf nimmt, weil es so weithin üblich ist, weil er eh weiß, dass beschweren nichts nützt, heißt nicht, dass er ohne diesen sinnlosen Link nicht besser klar käme.

Leider finde ich in meinen alten Aufzeichnung zu Barrierearmut den entsprechenden Artikel nicht.
Wenn ich ihn wiederfinde, berichte ich hier.

Eine Plattform, wo man Blinde direkt nach so etwas fragen kann, kenne ich leider nicht.

Du argumentierst hier vor allem mit der Verbreitung einer Praxis und leitest daraus ab, dass es daher "doch schon OK sein wird".

Du argumentierst nicht aus Nutzungsszenarien heraus und vergleichst Variante A mit Variante B.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:38 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2022, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2022