daten natürlich, entschuldige meine ungeaue aussprache. ist meistens abends, dass ich mich damit beschäftige. danke dir erstmal für die unterstützung. hab jetzt erstmal wenig zeit, werde es mir später anschauen.
Beiträge von harry22
-
-
achso ich hätts fast vergessen. bei dem letztgenannten plugin aus dem tutorial kann man im selbstgestaltetem "benutzerdefiniertem feld" eine url eingeben. man muß aber noch im theme irgenwo die ausgabe einpflegen. ich habe folgenden code einfach in der index.php hiter
gepackt:
PHP
Alles anzeigen<?php if(get_post_meta($post->ID, "image_value", $single = true) != "") : ?> <img src="<?php echo get_post_meta($post->ID, "image_value", $single = true); ?>" alt="<?php the_title(); ?>" /> <?php endif; ?> nach dem veröffentlichen des posts habe ich dann automatisch das bild unter meinem post gehabt. währenddessen hörte der autor: [U][/U][URL="http://de.youtube.com/watch?v=cWvuB1vSsAc"] bei mir bist du scheen. [/URL] -
so, dann hab ich jetzt aus dem tutorial die codeschnipsel in eine php datei geschmissen und in den pluginordner geschoben. das plugin aus dem tutorial funktioniert wunderbar. im tutorial selber werden wie gesagt nur codeschnipsel geboten. hier biete ich einfach mal den ganzen code zum copy&paste an, natürlich mit großem dank an den lehrer:
PHP
Alles anzeigen<?php /* Plugin Name: Custom Write Panel Plugin URI: http://wefunction.com/2008/10/tutorial-create-custom-write-panels-in-wordpress Description: Allows custom fields to be added to the WordPress Post Page Version: 1.0 Author: Spencer Author URI: http://wefunction.com /* ----------------------------------------------*/ $new_meta_boxes = array( "image" => array( "name" => "image", "std" => "", "title" => "Image", "description" => "Using the \"<em>Add an Image</em>\" button, upload an image and paste the URL here.") ); function new_meta_boxes() { global $post, $new_meta_boxes; foreach($new_meta_boxes as $meta_box) { $meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true); if($meta_box_value == "") $meta_box_value = $meta_box['std']; echo'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />'; echo'<h2>'.$meta_box['title'].'</h2>'; echo'<input type="text" name="'.$meta_box['name'].'_value" value="'.$meta_box_value.'" size="55" /><br />'; echo'<p><label for="'.$meta_box['name'].'_value">'.$meta_box['description'].'</label></p>'; } } function create_meta_box() { global $theme_name; if ( function_exists('add_meta_box') ) { add_meta_box( 'new-meta-boxes', 'Brazen Post Settings', 'new_meta_boxes', 'post', 'normal', 'high' ); } } function save_postdata( $post_id ) { global $post, $new_meta_boxes; foreach($new_meta_boxes as $meta_box) { // Verify if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) { return $post_id; } if ( 'page' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id )) return $post_id; } else { if ( !current_user_can( 'edit_post', $post_id )) return $post_id; } $data = $_POST[$meta_box['name'].'_value']; if(get_post_meta($post_id, $meta_box['name'].'_value') == "") add_post_meta($post_id, $meta_box['name'].'_value', $data, true); elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true)) update_post_meta($post_id, $meta_box['name'].'_value', $data); elseif($data == "") delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true)); } } add_action('admin_menu', 'create_meta_box'); add_action('save_post', 'save_postdata'); ?>ich werde es dann demnächst auf meine wünsche anpassen. erstmal soweit. ich glaube, mit dem tutorial werde ich an mein ziel kommen. guts nächtle erstmal
-
ok, anne will war heute mal wieder wie immer. übriges gibt es auch ein blog von der guten. natürlich powered by wordpress.
aber ich wollte ja eigentlich mein plugin basteln. ich merke es schon, es artet eher aus in eine art selbst-tutorial. naja, warum eigenlich nicht. mir hilft ja keiner, also helfe ich mir selber. macht auch spaß die teilinfos zu suchen.
der thread mag vielleicht ein wenig durcheinander wirken, aber so ist es eben mit der selbstevolution. ich bin grad dabei rauszufinden, was ich nicht weiß und habe hier versucht mich sozusagen am eigenen schopf aus dem sumpf zu ziehen. (anne will hat einfach zu schönes haar, da wollt ich dann doch nicht ran)
also, einfaches plugin kann ich. aber ich will dateien letztenendes in der datenbank ablegen.
inzwischen habe ich so einiges rausbekommen. auch wenn es bis her etwas konfus wirkt.
für meine zwecke reicht die tabelle post_meta mit alldazugehörigen wordpress eigenen funktionen.
ich will eine optionsbox im adminbereich haben, mit eigenen benutzerdefinierten feldern. ich will aber nicht die schon vorhandenen nutzen. ich will die für meine zwecke anpassen und alles so gestalten, dass das plguin sofort einsatzbereit ist nach dem aktivieren.
inzwischen glaube ich etwas sehr sinnvolles gefunden zuhaben:
genau das tutorial, das ich jetzt an der stelle brauche:
Function Web Design & Development [ Blog ] Tutorial: Creating Custom Write Panels in WordPress -
kurze abweichung: ich hab mir ja auch gedanken darüber gemacht, dass ich für das plugin im adminbereich eine eigene verwaltungsseite haben will.
bei wordpress.org gibt es ein wundervolles copy&paste-beispiel. einfach den folgenden code in eine datei kopieren, in den plugins-odner schieben, aktivieren, fertig. schon kann man sehen, wo sich alles eine neue adminseite einfügt. eine super demosache:
ZitatPHP
Alles anzeigen<?php /* Plugin Name: Menu Test Plugin URI: http://wordpress.org Description: Menu Test Author: Nobody Author URI: http://example.com */ // Hook for adding admin menus add_action('admin_menu', 'mt_add_pages'); // action function for above hook function mt_add_pages() { // Add a new submenu under Options: add_options_page('Test Options', 'Test Options', 8, 'testoptions', 'mt_options_page'); // Add a new submenu under Manage: add_management_page('Test Manage', 'Test Manage', 8, 'testmanage', 'mt_manage_page'); // Add a new top-level menu (ill-advised): add_menu_page('Test Toplevel', 'Test Toplevel', 8, __FILE__, 'mt_toplevel_page'); // Add a submenu to the custom top-level menu: add_submenu_page(__FILE__, 'Test Sublevel', 'Test Sublevel', 8, 'sub-page', 'mt_sublevel_page'); // Add a second submenu to the custom top-level menu: add_submenu_page(__FILE__, 'Test Sublevel 2', 'Test Sublevel 2', 8, 'sub-page2', 'mt_sublevel_page2'); } // mt_options_page() displays the page content for the Test Options submenu function mt_options_page() { echo "<h2>Test Options</h2>"; } // mt_manage_page() displays the page content for the Test Manage submenu function mt_manage_page() { echo "<h2>Test Manage</h2>"; } // mt_toplevel_page() displays the page content for the custom Test Toplevel menu function mt_toplevel_page() { echo "<h2>Test Toplevel</h2>"; } // mt_sublevel_page() displays the page content for the first submenu // of the custom Test Toplevel menu function mt_sublevel_page() { echo "<h2>Test Sublevel</h2>"; } // mt_sublevel_page2() displays the page content for the second submenu // of the custom Test Toplevel menu function mt_sublevel_page2() { echo "<h2>Test Sublevel 2</h2>"; } ?>für meine zwecke aber brauche ich diese box im adminbereich bearbeiten und erstellen.
auch hierfür gibt es eine superanleitung sogar als video:
Creating Click & Drag Options Boxes in WP 2.7 | Techlyzer.comwirklich empfehlenswert.
den code aus dem videotutorial habe ich zusammengeschrieben und in eine plugin-datei kopiert. hier mal auch wieder eine easy-copy&paste-sache: den code einfach in eine datei kopieren, in den plugin-ordner schieben, aktivieren und im adminbereich "bearbeiten", "erstellen" schauen. da gibt es dann so eine box. aus dem code heraus wird auch deutlich, wie man dann eine eigene box gestalten kann:
ZitatPHP
Alles anzeigen<?php /* Plugin Name: Testplugin Plugin URI: www.xxxx.com Description: Box Version: 1.0 Author: no name Author URI: xxxxxx ----------------------------------------------------- Copyright 2006 XXX (email : xxx@xx.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ----------------------------------------------------- See readme file for change-logs. */ ?> <?php //Box function mypost_box(){?> <div>Hier kommt deine Optionsseite rein.</div> <?php } function add_post_boxes() { add_meta_box('mypostbox', 'Optionsseite', 'mypost_box', 'post', 'normal', 'high'); add_meta_box('mypostbox', 'Optionsseite', 'mypost_box', 'post', 'normal', 'high'); } add_action('admin_menu', 'add_post_boxes'); ?> -
auch sehr guter thread:
http://forum.wordpress-deutschland.org/plugin-entwick…g-aufbauen.htmlZitatPHP[LEFT] [COLOR=#000000] [COLOR=#0000cc]<?php $comments [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#0000cc]$wpdb[/COLOR][COLOR=#006600]->[/COLOR][COLOR=#0000cc]get_results[/COLOR][COLOR=#006600]([/COLOR][COLOR=#cc0000]"SELECT comment_post_ID, comment_author, comment_author_email, comment_content, comment_date, DATE_FORMAT(comment_date,'%d.%m.%Y %H:%i') AS new_comment_date FROM $wpdb->comments WHERE comment_type = '' && comment_approved = '1' ORDER BY comment_date DESC LIMIT 3"[/COLOR][COLOR=#006600]); [/COLOR][COLOR=#0000cc]?>[/COLOR] [/COLOR] [/LEFT]ok, für mich wird klar, ich muß bei meinem plugin erstmal die verbindung zur datenbank herstellen.
eine anmerkung von marX macht mir auch was deutchlicher:
Zitat
Du willt ja keine neue DB-Verbindung aufbauen, sondern die bestehende nutzen.mit dem
Code[COLOR=#000000][COLOR=#006600]global [/COLOR][COLOR=#0000cc]$wpdb[/COLOR][COLOR=#006600]; [/COLOR][/COLOR]greife ich auf schon eine bestehende verbindung zu.
eine sache ist für mich auch noch aus dem thread klargeworden. ich muß das ganze im wp-context einbauen. also in der plugin-datei oder einer datei, die ich mit include eingebunden habe.
CodeWo bindest du das Script denn ein? Muss natürlich irgendwo im [URL="http://forum.wordpress-deutschland.org/lexikon/?do=showentry&item=WP"]WP[/URL]-context sein, z.B. [URL="http://forum.wordpress-deutschland.org/lexikon/?do=showentry&item=Plugin"]Plugin[/URL] oder [URL="http://forum.wordpress-deutschland.org/lexikon/?do=showentry&item=Theme"]Theme[/URL]. -
kurz mal was bei rene-ade.de gelernt: übrigens eine sehr gute einleitung, die man zusätzlich zu den üblichen wordpress-codex-anleitungen lesen kann. sehr gut beschrieben, was man machen muß, wenn man ein eigenes plugin entwickeln will.
ZitatWPDB: Datenbankabfragen
Für die meisten Abfragen gibt es bereits komfortable Funktionen wie zum Beispiel get_post(…) um das Datenobjekt eines bestimmten Posts (Beitrag oder Seite) zu bekommen, oder get_posts(…) um alle Posts auszulesen die bestimmten Kriterien entsprechen. Wer keine Funktion von WordPress finden konnte um bestimmte Werte aus der Dankenbank abzufragen, kann selbst Querys über das globale Objekt $wpdb der WPDB-Klasse ausführen.
Mit der Methode query(…) können Manipulationen an der Datenbank vorgenommen werden. Ein einzelner Wert wird am besten mit der Methode get_var(…) abgefragt, die den gewünschten Wert direkt zurückgibt. Die Methode get_row(…) gibt eine Ergebnis-Zeile als Array oder Objekt zurück. Und mit der Methode get_results(…) können umfangreichere Datenbankabfragen durchgeführt werden: Diese Methode liefert alle abgefragten Datensätze in einem Array zurück, wobei die Elemente des Arrays (wie ein einzelner Rückgabewert bei get_row(…)) auf Wunsch die Spalten einer Ergebnis-Zeile in einem Array oder als Objekt enthalten. -
-
interessantes habe ich auch in dem zusammenhang in dem tread gefunden:
http://forum.wordpress-deutschland.org/konfiguration/…e-auslesen.html
und hier auch natürlich wichtig, stichwort: run any query on the database:
http://codex.wordpress.org/wpdb_Classdas grundmuster ist:
-
ok, dann denk ich halt mal wieder laut.
also ich will ein plugin schreiben, mit dem ich einige dateien in der datenbank speicher und immer wieder aufrufe, wenn ich sie brauche. alles, was in der db gespeichert wird, soll postabhängig sein, also jeder post soll zusätzlichen dateien speichern. ich bin da auf die benutzerdefinierten felder, custom fields, gekommen.
ich weiß so im groben, wie ein plugin aufgebaut werden muß.
das einzige, was ich nicht ganz verstehe ist halt, wie ich daten in der datenbank speichern kann.
inzwischen aber ist mir klar geworden, dass ich für das plugin eben die meta-tabelle nutzen kann.
ok, wie man dateien aus der bank aufrufen und zeigen kann, dazu gibt es so einiges im netzt. bei franky kann man z.B. folgendes abschreiben:
PHP[COLOR=#000000][B]<?php[/B][/COLOR] [COLOR=#000088]$image[/COLOR] [COLOR=#339933]=[/COLOR] get_post_meta[COLOR=#009900]([/COLOR][COLOR=#000088]$post[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]ID[/COLOR][COLOR=#339933],[/COLOR] 'image_des_beitrags'[COLOR=#339933],[/COLOR] [COLOR=#000000][B]true[/B][/COLOR][COLOR=#009900])[/COLOR]; [COLOR=#000000][B]?>[/B][/COLOR] <a href="[COLOR=#000000][B]<?php[/B][/COLOR] the_permalink[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#000000][B]?>[/B][/COLOR]"><img src="[COLOR=#000000][B]<?php[/B][/COLOR] [COLOR=#990000]echo[/COLOR] [COLOR=#000088]$image[/COLOR]; [COLOR=#000000][B]?>[/B][/COLOR]" alt="[COLOR=#000000][B]<?php[/B][/COLOR] the_title[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR]; [COLOR=#000000][B]?>[/B][/COLOR]" /></a>aber wie schreibe ich jetzt dateien in die datenbank rein?
ich glaube weiter helfen kann mir folgender fund:Code
Alles anzeigenadd_action('publish_post', 'add_track_fields'); function add_track_fields($post_ID) { global $wpdb; add_post_meta($post_ID, 'stt_total_visits', 0, true); add_post_meta($post_ID, 'stt_unique_visits', 0, true); add_post_meta($post_ID, 'stt_rank', 0, true); //add_post_meta($post_ID, 'stt_compete_rank', 0, true); $result = $wpdb->get_results("SELECT $wpdb->postmeta.meta_value FROM $wpdb->postmeta WHERE $wpdb->postmeta.post_id = $post_ID AND $wpdb->postmeta.meta_key = 'url'");soweit ich da mir was abgucken kann: ich vermute, dass bevor ich dateien in die bank schreiben kann, muß ich mich mit der db verbinden(?)
mit:genaueres hierzu gibt es aber hier.
-
hallo, ich möchte ein plugin entwickeln mit eigener tabelle in der datenbank.
ich möchte variable abspeicher in abhängigkeit zum/r post/page. d.h. beim konpfdruck "submit" sollen die dateien im backend abhängig vom aktuell bearbeitetem post gespeichert und später wieder aufgerufen werden.
folgende anleitung kenn ich schon:
Creating Tables with Plugins WordPress Codex
hilfreich erscheint mir auch folgendes:
Function Reference/wpdb Class WordPress Codexaber ich weiß noch nicht ganz, wie ich es anstellen soll.
hat jemand tipps für mich?
-
hallo wollte den tipp einfach mal weitergeben:
hab hier einen guten tipp gefunden, wie ich das wordpress im browser schneller laden lasse.
der unterschied ist immens, sodass man es auch so mit bloßen augen sehen kann.
aber auch mit dem firefox-addon httpfox sieht man eindeutig die verbesserung.
was haltet ihr von dem tipp? gibt es damit irgendwelche probleme?
-
Naja, ich habs erstmal so eingebunden, wie man es nicht machen soll. Codestyling, ich muss mir bei Zeiten anschauen, wie es mit dem Einbinden von Style-Dateien und Javascripten in einem Plugin funktionieren soll.
Viele Güße
-
so nach einiger arbeit habe ich jetzt rausgefunden, dass jquery und prototype nicht zusammen funtzen. zunächst habe ich das plugin wp-lightbox ausgeschaltet, und damit dann bei mir auch prototype im frontend.
wie ich diesen konflikt löse, steht hier:
das soll man einfügen. allerdings weiß ich jetzt nicht, wie ich es machen soll.
Code$j=jQuery.noConflict(); // Use jQuery via $j(...) $j(document).ready(function(){ //do something... });nun gut, koknflikt prototype und jquery ist ja nur mein zwischenproblemchen, wobei ich natürlich hier gerne einen tipp hätte. hat jemand einen?
dann aber das problem, wie einbinden? ich habe jetzt erstmal folgendes im header eingebunden. so funtzt es bei mir:
PHP<link rel="stylesheet" href="<?php bloginfo('url'); ?>/wp-content/plugins/plugin/tabs.css" type="text/css"> <script src="<?php bloginfo('url'); ?>/wp-content/plugins/plugin/js/jquery-1.3.min.js"></script> <script type="text/javascript" src="<?php bloginfo('url'); ?>/wp-content/plugins/plugin/js/ui.core.js"></script> <script type="text/javascript" src="<?php bloginfo('url'); ?>/wp-content/plugins/plugin/js/ui.tabs.js"></script>allerdings will ich ein plugin basteln und da hast du codestyling natürlich recht mit dem einbinden der schon vorhandenen bibliothek:
aber ich weiß nicht so recht. es will bei mir nicht klappen. ich glaub, es liegt an der reihenfolge, wie die einzelnen skripte im header geladen werden. ????
hab auch schon damit probiert (im plugin eingebunden):
Codewp_enqueue_style('http://domain.de/wp-content/plugins/plugin/tabs.css'); wp_enqueue_script('http://domain.de/wp-content/plugins/plugin/js/jquery-1.3.min.js'); wp_enqueue_script('http://domain.de/wp-content/plugins/plugin/js/ui.core.js'); wp_enqueue_script('http://domain.de/wp-content/plugins/plugin/js/ui.tabs.js');aber das funtz nicht. hm
vielleicht noch einen tipp?
-
... dann fasse ich nochmal alles zusammen:
1)folgendes in das template einbauen:(wo genau?)
wp_enqueue_script('jquery-ui-tabs');
2) wie erstelle ich dann die tabs? ich habe gegoogle aber nur wenig infos bekommen.
und: vielen, vielen dank für eure hilfe
-
codestyling: das hört sich gut an. ich habe so einiges mit tabs rumexperimentiert, auch das plugin ausprobiert. das problem war da immer, dass ich zwar in jedem post tabs einfügen konnte. sobald ich aber im post 1, tab b angeklickt habe, wurden alle anderen tabs in anderen posts verändert, bzw. zugemacht.
meine frage also an dich: funtioniert die von dir vorgeschlagene lösung in jedem post unabhängig?
-
mal meine feststellung(oder frage?) in den raum geworfen:
ich habe folgendes javascript in meine wp-installation eingebaut:
UI/Tabs - jQuery JavaScript Libraryfolgendes phänomen habe ich festgestellt: wenn ich die javascripte in die originalwordpressinstallation einbaue, dann funktioniert javascript problemlos.
in der deuschsprachigen version allerdings nicht und ich weiß nicht, wie ich es zum laufen bringe.
kann mir jemand sagen, woran das hängen mag?
(es sind alles frisch installierte test-blogs)
-
ich habe eine start.php, mit einem forumlar. dort gibt man daten ein, es gibt einen submit button. beim klick werden die daten an die datei2.php geschickt. dort gibt es ein textareafeld, in dem ein code erscheint mit den eingegebenen daten drin. nun möchte ich, dass dieser code direkt in den editor gesendet wird.
-
ich generiere einen code. der landen dann z.B. in einer code.php datei im textarea <textarea>code</textarea>
jetzt möchte ich, dass dieser code irgendwie in den editor kommt, am besten ohne copyandpaste, sondern oncklick.
wie könnte ich das machen.
-
hallo, kann mir jemand sagen, in welcher datei im ordner wp-admin ich das textarea-feld finde?
ich dachte die würde in der edit.php oder new-post.php drin sein. die finde ich aber nicht. die id davon müßte sein:id='editorcontainer'
wo finde ich das? vielen dank für die antwort.
oder vielleicht noch weiter gedacht:
ich möchte, dass ein html-code von einem formular gesendet in das editorfeld kopiert wird. hab schon nach send_to_editor gegoogelt und etwas mit javascript rumprobiert. war bis jetzt aber alles nicht so das, was ich will. ich generiere einen html-code und will, dass der nach dem "submit" in den editor geladen wird.