Funktion umschreiben

  • Need Help!
    Versuche eine Funktion umzuschreiben, die eine AJAX SECTION generiert. Statt der AJAX SECTION, will ich eine ganz normales HTML ausgeben, dass von jeder Suchmaschine eingelesen werden kann.

    Das ist die Funktion:

    PHP
    function noel_create_page_sections(){    $pages = get_pages();    foreach( $pages as $p ) {        $template = basename(get_post_meta($p->ID, '_wp_page_template', true), ".php");                noel_get_ajax_section_entry( $p->post_name, get_permalink($p->ID), get_the_title($p->ID), $template );    }}


    Das ist die Ausgabe:

    HTML
    <section id="hallo-welt" class="section-block "><a class="ajax-section" href="http://localhost:8888/reset/?p=1" title="Hallo Welt!"></a></section><section id="allgemein" class="section-block "><a class="ajax-section" href="http://localhost:8888/reset/?cat=1" title="Allgemein"></a></section>

    Ich bin kein Programmierer. Mit try and error komme ich nicht mehr weiter.

    • 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)

    Mehr erfahren

  • Sofern die Ausgabe statisch ist lösche das doch einfach und ersetze es mit deinem statischen HTML


    ... ja, das wäre das einfachste. Nein, die Ausgabe ist dynamisch. Es werden die Seiteninhalte dynamisch eingelesen.

  • Oder kann ich einfach die Ausgabe umschreiben?

    PHP
    /* echo ajax section */	echo '<section id="' . esc_attr($id) . '" class="section-block ' . $class . '">';	echo '<a class="ajax-section" href="' . esc_url($href) . '" title="' . esc_attr($title) . '"></a>';	echo '</section>' . PHP_EOL;

    .... also anstatt den Link ausgeben, den Inhalt ausgeben?

  • Was willst Du denn genau ausgeben? Ist das eine externe HTML-Datei oder kommt der Inhalt aus Wordpress. Denn dann gibt es einfachere Methoden.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Was willst Du denn genau ausgeben? Ist das eine externe HTML-Datei oder kommt der Inhalt aus Wordpress. Denn dann gibt es einfachere Methoden.

    Wie gesagt, es ist ein gekauftes Theme, welches die Seiten als Ajax Bereiche ausgibt. Im Quellcode sieht das dann so aus:

    HTML
    <section id="hallo-welt" class="section-block "><a class="ajax-section" href="http://localhost:8888/reset/?p=1" title="Hallo Welt!"></a></section>
    <section id="beratung" class="section-block default-page"><a class="ajax-section" href="http://localhost:8888/reset/?page_id=149" title="Beratung"></a></section>

    Anstatt der Links, will ich aber den Inhalt ausgeben!

  • Code
    foreach( $pages as $p ) {        
    	$template = basename(get_post_meta($p->ID, '_wp_page_template', true), ".php");
    	$content = $p->post_content;
    	$id = $p->ID;
    	echo '<p id="' . $id . '">' . $content . '</p>';
    }

    Die Ausgabe kann aber unerwartete Anzeige Probleme mit sich bringen, denn $content enthält den Seitenquelltext (body) als html string.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Die Ausgabe kann aber unerwartete Anzeige Probleme mit sich bringen, denn $content enthält den Seitenquelltext (body) als html string.


    Danke für deinen Code. Kommt leider nichts bei raus, also keine Ausgabe. Ich hab den Code so verwendet:

    PHP
    function noel_get_ajax_section_entry($id, $href, $title = '', $class = '') {	if( trim($class) !== '' ){		$class = sanitize_html_class($class) . '-page';	}	/* echo ajax section */	foreach( $pages as $p ) {        	$template = basename(get_post_meta($p->ID, '_wp_page_template', true), ".php");	$content = $p->post_content;	$id = $p->ID;	echo '<p id="' . $id . '">' . $content . '</p>';}}
  • Mein Code sollte zeigen wie man an den Content kommt. Ohne das "drumherum" zu kennen, also was macht die Funktion noel_get_ajax_section_entry, kann man den Code nicht 1:1 übernehmen.

    PS: Bitte zukünftig den Quellcode sauber formatiert posten. Es ist umständlich dass selbst zu tun wenn man helfen will.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

    Einmal editiert, zuletzt von mensmaximus (30. Juli 2014 um 14:05)

  • ... o.k. danke. Ich bin dank deines Codes ein Schritt weiter. Es werden mir nun alle Inhalte ausgegeben, heisst alle Seiten. Das müsst dann also noch gefiltert werden. So dass immer nur die entsprechende Seite ausgegeben wird.


    Deine Frage nach der "[COLOR=#333333]noel_get_ajax_section_entry": Meines erachtens gibt die den Inhalt aus. Das sieht im Ergebnis dann so aus:

    [/COLOR][COLOR=#000080]<section id=[COLOR=#0000FF]"hallo-welt"[/COLOR] class=[COLOR=#0000FF]"section-block "[/COLOR]>[/COLOR][COLOR=#008000]<a class=[COLOR=#0000FF]"ajax-section"[/COLOR] href=[COLOR=#0000FF]"http://localhost:8888/reset/?p=1"[/COLOR] title=[COLOR=#0000FF]"Hallo Welt!"[/COLOR]>[/COLOR][COLOR=#008000]</a>[/COLOR][COLOR=#000080]</section>[/COLOR]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!