Beiträge von frankee

    Hallo,
    habe vor 3 Jahren einen Loop zur Ausgabe eines Custom Posts angelegt. Dieser funktioniert nun nicht mehr. Entweder hat sich der Wordpress Codex geändert oder ich habe PHP Fehler drin. Fall jemand Informationen hat oder einen Fehler sieht, würde mir das sehr helfen. Hier der Loop:

    Hallo allerseits,

    Die Dateien so abgeändert speichern, auf den Server schieben und die Probleme sind behoben! :mrgreen:

    CMSFan

    Hey CMSFan,
    dein Problem kenne ich auch, die Lösung verwende ich ebenfalls. Auf dem Live System ist dann auch alles richtig!
    Was allerdings nervt, ist das Dreamweaver trotz richtiger codierung es nicht schafft in der eigenen Vorschau Umlaute anzuzeigen. Gerade bei Textkorrekturen sehr nervig!

    Da ich PHP nicht richtig kann, behelfe ich mir, indem ich Code abändere. In diesem Fall habe ich nachfolgende Funktion kopiert:

    PHP
    function get_module_settings_part_padding_bottom($gt3_theme_pagebuilder, $moduleid){    $compile = "        <div class='enter_option_row'>            <h5>" . __('You can use the custom CSS class for this module.', 'gt3_builder') . "</h5>            <input type='text' value='" . (isset($gt3_theme_pagebuilder['modules'][$moduleid]['custom_class']) ? $gt3_theme_pagebuilder['modules'][$moduleid]['custom_class'] : '') . "' name='pagebuilder[modules][$moduleid][custom_class]' class='enter_text1' style='width:115px !important; text-align:center;'>        </div>            ";
        return $compile;}

    ... ihr einen neuen Namen gegeben. Anstatt custom_class benutze ich custom_ID

    Die Funktion funktioniert auch im Zusammenhang mit custom_class. Warum soll sie dann mit custom_ID nicht funktionieren?

    ... vielleicht liegt der Fehler auch in der zugehörigen Funktion:

    Ich will eine PHP Ausgabe um die Ausgabe einer ID ergänzen. Im Original sieht das so aus

    PHP
    $compile .= '<div class="fw_block bg_start'.(isset($module['custom_class']) && strlen($module['custom_class'])>0 ? " ".$module['custom_class'] : '').'" data-option="'.$module['properties'].'" data-background="" style=" background:'.((strlen($module['bg_color'])>0) ? "#".$module['bg_color'] : '').' '.((strlen($module['bg_image'])>0) ? "url('".$module['bg_image']."')" : '').' '.(($module['properties'] == "stretch") ? 'no-repeat' : 'repeat').' 0 0; '.(($module['properties'] == "stretch") ? 'background-size:cover;' : '').'">';

    Meine Ergänzung um die ID:

    PHP
    $compile .= '<div id='(isset($module['custom_ID'])' class="fw_block bg_start'.(isset($module['custom_class']) && strlen($module['custom_class'])>0 ? " ".$module['custom_class'] : '').'" data-option="'.$module['properties'].'" data-background="" style=" background:'.((strlen($module['bg_color'])>0) ? "#".$module['bg_color'] : '').' '.((strlen($module['bg_image'])>0) ? "url('".$module['bg_image']."')" : '').' '.(($module['properties'] == "stretch") ? 'no-repeat' : 'repeat').' 0 0; '.(($module['properties'] == "stretch") ? 'background-size:cover;' : '').'">';

    .... geht leider nicht - sprich ich erhalte einen weissen Bildschirm. Ich vermute einen Syntaxfehler. Kann mir da jemand helfen?

    ... ich weiss, dafür gibt es ein Plugin "HTML Raw". Funktioniert leider nicht. Folgende Codezeile wird trotzdem gelöscht:
    <i class="icon-link"></i>

    Vielleicht funktioniert nur noch die kostenpflichtige Version von "HTML Raw"?

    Jemand eine andere Lösung?

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

    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>';}}

    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!

    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?

    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.

    ... danke für den Hinweis. Das es mit Tags nicht geht will mir trotzdem nicht in den Kopf. Alos ich kann ja das Artikel Archiv als single-(Slug).php ausgeben lassen - funktioniert soweit. Warum funktioniert das nicht auch mit Tags? Also tag-(Slug).php?
    Und wenn das nicht geht, welche andere Möglichkeit gibt es?

    Es gibt da einen umfangreichen Artikel im Wordpress-Codex mit grafischer Übersicht:
    https://codex.wordpress.org/Template_Hierarchy

    ... danke, ich kenne die Überischt - die ist wirklich sehr gut und ich habe mich daran gehalten. Sprich ich habe es auch mit tag.php und tag-slug.php versucht aber das alles führt nicht zu meinem gewünschten Ergebnis. Die Tags verwenden weiterhin die archive.php - das ist ja mein Problem.

    Ich schaffe es das News Archiv mit einem eigenen Template zu verbinden. Indem ich gemäß der Template Hirarchie meinen Slug im Dateinamen angebe. Also "single-news.php"

    Nun will ich die Tags (Schlagwörter) auch in einem eigenen Template ausgeben. Standardmäßig werden diese in der archive.php ausgegeben. Wenn ich nun eine "archive-news.php" anlege, greift WP trotzdem auf die archive.php zu!

    Wie kann ich WP anweisen, dass die "archive-news.php" benutzt werden soll?

    Bin für alle Hinweise dankbar!

    Hi,
    ich will die Bildgalerie eines Posts im Template ausgeben. Das einzigste was funktioniert ist das:

    PHP
    <?php  $gallery_shortcode = '[gallery id="' . intval( $post->post_parent ) . '"]';  print apply_filters( 'the_content', $gallery_shortcode ); ?>


    ALLERDINGS werden dabei Alle Galerien ausgegeben. Ich will aber nur die Galerie ausgeben, welche ich für den Post angelegt habe. Also so, wie ich auch eine Überschrift oder den Content ausgeben kann. Geht das?