1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Widget klappt nicht!!!

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von Resul, 28. November 2010.

Schlagworte:
  1. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Hallo,

    ich bin ein neuer Blogger, demnach auch neu hier im Forum. Ich hatte mich für ein Theme entschieden, allerdings habe ich erst später gemerkt, das dass Theme kein Widget unterstützt. Nun hatte ich mich auf die Suche gemacht, um mein Theme Widgetfähig zu machen. Habe auf Wordpress gefunden wie man es macht. Habe die Sidbar.php und die Function.php bearbeitet. Es schien so, dass es geklappt hat, aber vergeblich. Folgendes:

    Im Backend unter Design/Widgets kann ich per Dropp & Down meine Sidebar gestalten. Nach dem Speichern, wird die Sidebar, aber nicht im Frontend angezeigt.

    Woran liegt das?
     
  2. Marcus[IS]

    Marcus[IS] Well-Known Member

    Registriert seit:
    23. August 2009
    Beiträge:
    5.955
    Zustimmungen:
    175
    Hi,

    eventuell wäre es hilfreich, wenn du uns mitteilst, welches Theme du nutzen willst.

    Vermutlich ist die Anweisung get_sidebar nicht eingebaut?
    http://codex.wordpress.org/Function_Reference/get_sidebar

    Findet sich meistens in der index.php, single.php, post.php, search.php usw.

    Am besten schaust du dir ein anderes WP-Theme mal an, dann kannst du schnell herausbekommen, in welche Dateien die Anweisung überall untergebracht werden muss, damit die Sidebar auch immer zur Verfügung steht. ;)
     
  3. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Ich nutze folgendes Theme:

    illacrimo 1.01 von Design Disease

    Also, ich habe in der datei, function.php folgendes unter <?php eingeragen:


    if ( function_exists('register_sidebar') )
    register_sidebar(array(
    'before_widget' => '',
    'after_widget' => '',
    'before_title' => '<div class="title">',
    'after_title' => '</div>',
    ));

    und in der sidebar.php unter <div class="SR"><div class="SRL"> folgendes:

    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar($name_or_number) ) : endif;
    ?>

    Muss ich nach diesen schritten noch weitere Dateien bearbeiten? Waren die Einträge überhaupt an der richtigen Stelle? Meine Seite zeigt zumindest keine Fehler an.

    Gruß
    Resul
     
  4. toscho

    toscho Well-Known Member

    Registriert seit:
    4. August 2006
    Beiträge:
    631
    Zustimmungen:
    0
    Du bist mit den Variablen etwas durcheinander gekommen. Und das function_exists() kannst du dir auch sparen.

    So geht es:
    functions.php

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    sidebar.php
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wenn du weitere Widgetbereiche anlegen willst, ergänze einfach die Funktion resul_sidebar_setup() um einen Block mit register_sidebar() und einer höheren Nummer.
     
  5. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Danke erstmal toscho,

    die function.php zeigt keine fehler, aber die sidebar habe ich so übernommen, wie du es gepostet hast, dort zeigt meine Seite ein Line-Fehler. Das Problem besteht weiterhin. Im Backend eingestellte sidebar ist im Frontend nicht sichtbar. :(((
     
  6. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Ich bin schon am verzweifeln :(
     
  7. toscho

    toscho Well-Known Member

    Registriert seit:
    4. August 2006
    Beiträge:
    631
    Zustimmungen:
    0
    Was soll ein »Line-Fehler« sein? Poste die exakte Fehlermeldung bitte. Und vergewissere dich, daß dein Theme die Sidebar überhaupt aufruft.
     
  8. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Ich kopiere dir mal die gesamte function und sidebar hier rein

    Sidebar:

    <div class="SR"><div class="SRL">
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar($name_or_number) ) : endif;
    ?>



    <div class="Search">

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

    <input type="text" name="s" class="keyword" />

    <div id="buttonsearch"><input name="submit" type="image" class="search" title="Search" src="<?php bloginfo('template_url'); ?>/images/ButtonTransparent.png" alt="Search" />

    </div>

    </form>

    </div>



    <div class="Syn"><div class="SynTop"></div>



    <ul>


    <li><a href="<?php bloginfo('rss2_url'); ?>">News</a> (RSS)</li>

    <li><a href="<?php bloginfo('comments_rss2_url'); ?>">Kommentare</a> (RSS)</li>

    </ul>

    </div>



    <!-- Start Flickr Photostream -->

    <?php if (function_exists('get_flickrrss')) { ?>

    <div class="Flickr">

    <h3>PhotoStream</h3>

    <ul>

    <?php get_flickrrss(); ?>

    </ul>

    </div>

    <?php } ?>

    <!-- End Flickr Photostream -->



    <div class="Categ">

    <h3>Categories</h3>

    <ul>

    <?php wp_list_cats(); ?>

    </ul>

    </div>



    <!-- Start Recent Comments -->

    <?php if (function_exists('mdv_recent_comments')) { ?>

    <div class="LatestCom">

    <h3>Letzte Kommentare</h3>

    <ul>

    <?php mdv_recent_comments('10'); ?>

    </ul>

    </div>

    <?php } ?>

    <!-- End Recent Comments -->





    </div><div class="SRR">



    <h3>Links</h3>

    <ul><?php get_links('-1', '<li>', '</li>', '', FALSE, 'id', FALSE,

    FALSE, -1, FALSE); ?>

    </ul>



    <br />



    <h3>Archiv</h3>

    <ul>


    <?php wp_get_archives('type=monthly'); ?>

    </ul>



    <br />



    <h3>Meta</h3>

    <ul>

    <?php wp_register(); ?>

    <li><?php wp_loginout(); ?></li>


    <?php wp_meta(); ?>

    </ul>





    </div></div>


    Function:

    <?php




    /*

    Plugin Name: Recent Comments

    Plugin URI: http://mtdewvirus.com/code/wordpress-plugins/

    Description: Retrieves a list of the most recent comments.

    Version: 1.18

    Author: Nick Momrik

    Author URI: http://mtdewvirus.com/

    */

    add_action( 'widgets_init', 'resul_sidebar_setup' );

    function resul_sidebar_setup()
    {
    register_sidebar(
    array (
    'name' => 'Sidebar 1',
    'id' => 'sidebar-1',
    'before_widget' => '<div id="sidebar-1">',
    'after_widget' => "</div>\n",
    )
    );
    }

    if (function_exists('mdv_recent_comments')) {

    }else{



    function mdv_recent_comments($no_comments = 10, $comment_lenth = 5, $before = '<li class="off" onmouseover=this.className="on"; onmouseout=this.className="off";>', $after = '</li>', $show_pass_post = false, $comment_style = 0) {

    global $wpdb;

    $request = "SELECT ID, comment_ID, comment_content, comment_author, comment_author_url, post_title FROM $wpdb->comments LEFT JOIN $wpdb->posts ON $wpdb->posts.ID=$wpdb->comments.comment_post_ID WHERE post_status IN ('publish','static') ";

    if(!$show_pass_post) $request .= "AND post_password ='' ";

    $request .= "AND comment_approved = '1' ORDER BY comment_ID DESC LIMIT $no_comments";

    $comments = $wpdb->get_results($request);

    $output = '';

    if ($comments) {

    foreach ($comments as $comment) {

    $comment_author = stripslashes($comment->comment_author);

    if ($comment_author == "")

    $comment_author = "anonymous";

    $comment_content = strip_tags($comment->comment_content);

    $comment_content = stripslashes($comment_content);

    $words=split(" ",$comment_content);

    $comment_excerpt = join(" ",array_slice($words,0,$comment_lenth));

    $permalink = get_permalink($comment->ID)."#comment-".$comment->comment_ID;



    if ($comment_style == 1) {

    $post_title = stripslashes($comment->post_title);



    $url = $comment->comment_author_url;



    if (empty($url))

    $output .= $before . $comment_author . ' on ' . $post_title . '.' . $after;

    else

    $output .= $before . "<a href='$url' rel='external'>$comment_author</a>" . ' on ' . $post_title . '.' . $after;

    }

    else {

    $output .= $before . '' . $comment_author . ': <a href="' . $permalink;

    $output .= '" title="View the entire comment by ' . $comment_author.'">' . $comment_excerpt.'</a>' . $after;

    }

    }

    $output = convert_smilies($output);

    } else {

    $output .= $before . "None found" . $after;

    }

    echo $output;

    }

    }

    ?>

    Also ich verstehe davon garnichts, ich will nur das meine blog seite richtig klappt. :)
     
  9. toscho

    toscho Well-Known Member

    Registriert seit:
    4. August 2006
    Beiträge:
    631
    Zustimmungen:
    0
    Warum verwendest du in der Sidebar noch den alten, kaputten Aufruf:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich habe dir oben den korrekten Code geliefert. Benutze ihn.

    Das Plugin hat übrigens in der functions.php überhaupt nichts verloren.

    Und bitte packe Codeschnipsel hier in die entsprechenden Tags, oben rechts findest du einen Button mit der Aufschrift »PHP« dafür.
     
  10. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Ok, sorry, bin wie gesagt sehr neu hier.

    Also ich habe deinen Code so eingegeben folgender fehler taucht auf:

    Schau es dir auf meiner Seite an: Home

    Sidebar
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Was muss ich denn jetzt genau in der Function wegmachen, wenn du sagst Plugin hat da nichts zu suchen, kann ich leider nicht viel mit anfangen. Wie gesagt, ich kann zwar einige sachen ausführen, laden und einigermaßen lesen, aber von PHP verstehe ich gleich Null.

    Hier nochmal meine Function.php

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  11. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Aaaah, ich glaub ich habe gesehen was du meinst mit dem Plugin im function.php. Ok habs gelöscht, aber ich komme immernoch nicht weiter mit meiner Sidebar:|
     
  12. toscho

    toscho Well-Known Member

    Registriert seit:
    4. August 2006
    Beiträge:
    631
    Zustimmungen:
    0
    Der Sidebaraufruf ist PHP-Code, der gehört in PHP-Tags:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Zur functions.php: Alles außer dem Code, den ich oben gepostet habe, ist ein Plugin. Dieser Code gehört in eine separate Datei, die du dann ins Pluginverzeichnis schiebst und im Backend aktivierst.

    Du solltest so etwas wirklich delegieren. PHP ist eine Programmiersprache mit weitreichenden Zugriffsrechten auf dem Server. Wenn du hier etwas falsch machst, kannst du dir sehr böse Sicherheitslücken schaffen.

    Such dir jemanden, der ein bißchen davon versteht und dir das abnimmt. Man muß nicht immer alles selbst machen.
     
  13. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Kann ich die Datei so benennen wie ich will?
     
  14. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Also, kannste mir den Ablauf mit der function.php erklären. Ich weiß ich nerve, aber danach kriege ich den rest schon hin glaube ich.

    Ich lass in der Function.php nur deinen Code drin, also in PHP-Tags denke ich mal. Der rest kommt in eine sepparate Datei? Ist der Name Relevant? In welches Verzeichnis, wo der function auch drin ist?
     
  15. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Super, zumindest sehe ich jetzt meine sidebar, was ich im backend einstelle. Es klappt. Jetzt nur noch die function bearbeiten, da warte ich lieber auf deine Antwort.
     
  16. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    So, nach langem rumfummeln, habe ich es geschafft. Den zweiten Widget-Bereich habe ich auch hingekriegt. Die Plugins aus der Sidebar, habe ich rausgehauen. Falls ich die nochmal brauche, habe ich sie vorsichtshalber kopiert. Aber ich habe ähnliche Plugins als Widget, vondaher erübrigt sich das.

    So langsam könnte ich mal einige Tags und Kommandos von PHP lernen. Verstanden habe ichs ja, auch wenn es jetzt zwei tage gedauert hat.

    Danke nochmal für deine Geduld und deine Hilfe. Und allen anderen natürlich auch.

    Gruß
    Resul
     
  17. toscho

    toscho Well-Known Member

    Registriert seit:
    4. August 2006
    Beiträge:
    631
    Zustimmungen:
    0
    Prima. War doch nicht so schwer. :)

    Wenn das die komplette functions.php deines Themes ist, dann weiß der Autor über WordPress auch nicht viel mehr als du. Naja, läuft ja auch so.

    Schreib noch diese Zeile rein:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Denn sonst wird dir vielleicht ein Update deines Themes angeboten, und du überschreibst dann ungewollt deine Änderungen.

    Ändere noch in der Datei header.php diese Zeile:

    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Sie sollte so aussehen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Momentan behauptest du dort nämlich, dein Blog werde in ISO-8859-1 ausgeliefert. Wird es aber nicht. Du verwendest das bessere UTF-8.

    Im Moment bekommst du damit noch kein Problem, weil WordPress per HTTP die richtige Zeichenkodierung angibt und HTTP über deine falsche HTML-Angabe siegt. Speicherst aber jemand eine deiner Seiten lokal ab und sieht sie sich dann im Browser an, so sind alle Umlaute futsch.
     
  18. Resul

    Resul Well-Known Member

    Registriert seit:
    28. November 2010
    Beiträge:
    70
    Zustimmungen:
    0
    Super, das habe ich auch hingekriegt. Ich habe noch andere überlegungen, z.b. das logo oben im Kopf der Seite neben der Schrift, Integrationsblogger. Mal schauen, wollte erstmal gucken, dass ich selbst damit klarkomme. Zumindest habe ich jetzt eine Struktur. Wollte die Seite dezent haben, nicht soviel schnick schnack wie manch andere Blogger.
     
  19. cebito

    cebito Well-Known Member

    Registriert seit:
    26. Dezember 2010
    Beiträge:
    431
    Zustimmungen:
    0
    So, heut Mittag erstmals Wordpress installiert/probiert, eigenes Theme geschrieben und dank dem Thread hier auch die Widgets untergebracht, aber, kleine Ergänzung:

    ist ein bissl ein Sch***, denn da bekommt JEDES Widget in einer Sidebar dieselbe ID mit. So jedenfalls war bei mir die Ausgabe. Hab das jetzt in ne Klasse geändert - wollen ja weitgehend W3C-konform bleiben :wink:

    Nichtsdestotrotz, schönen Restfeiertag noch...
     
  20. alchymyth

    alchymyth Well-Known Member

    Registriert seit:
    7. Juni 2009
    Beiträge:
    3.959
    Zustimmungen:
    1
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden