Oh Schreck ... ein query_posts() Konstrukt. Die Perfomance ist in dem Fall nachrangig. Query_posts() ist ein Relikt und gehört verbannt! Lese mehr dazu bei Monika und Automattic.
Beiträge von mensmaximus
-
-
Bei einem Blog mit integriertem Shop macht es durchaus Sinn nicht alles über HTTPS laufen zu lassen. Das sollte man an der Performance schon deutlich merken.Das ist nicht richtig. Aus heutiger Sicht sollte keine Webseite mehr ohne SSL laufen und die Performance macht keinen Unterschied. Nur die "Zeit bis zum erste Byte" ist langsamer und das sollte bei einem guten Hoster kein Problem sein. Der Mischbetrieb von HTTP und HTTPS führt früher oder später immer zu Problemen und sollte unter allen Umständen vermieden werden - sonst sehen wir uns hier bald wieder mit der Frage "Seit Umstellung auf HTTPS geht das nicht und jenes auch nicht mehr"

-
Fragen, Anregungen und Änderungen ab sofort auf https://gist.github.com/mensmaximus/b86032398f5229c509ab
-
Und weil die Frage ja öfters kommt habe ich schon mal ein Dropplet geschrieben. Wenn es die Zeit erlaubt mache ich noch ein Plugin.
Mit folgendem Code wir bei Variablen Produkten auf dem "Allgemein Tab" eine neue Checkbox angezeigt. Aktiviert man diese RCO (Remove Check Option) Checkbox, wird in den Selektorboxen aller Variationen dieses Produktes der Text "Wählen Sie eine Ausführung" entfernt.
Der gesamte Code kommt in die functions.php eines Child Themes.
Code
Alles anzeigen/** * WooRCO * * Adds a checkbox to each variable product in woocommmerce to remove the "choose an option" text from attribute dropdowns. * The checkbox is displayed on the general product data tab. * * @install To be dropped into functions.php. * * @author mensmaximus * @category admin * @extends woocommerce * @require WC >= 2.4.7, WP >= 4.3.1 * @release 2015/10/21 * @version 0.1 * @status alpha * */ add_action( 'woocommerce_product_options_general_product_data', 'mmx_add_rco_checkbox' ); function mmx_add_rco_checkbox() { woocommerce_wp_checkbox( array( 'id' => '_noselect', 'label' => __( 'RCO', 'woocommerce' ), 'description' => __( 'Enable to remove "check an option" text from attribute selectors.', 'woocommerce' ), 'wrapper_class' => 'form_row show_if_variable', 'value' => $noselect, ) ); } add_action( 'woocommerce_process_product_meta_variable', 'mmx_save_rco_checkbox' ); function mmx_save_rco_checkbox( $product_id ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if ( isset( $_POST['_noselect'] ) ) { update_post_meta( $product_id, '_noselect', $_POST['_noselect'] ); } else { delete_post_meta( $product_id, '_noselect' ); } } add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'mmx_rco_action'); function mmx_rco_action( $args ){ $noselect = get_post_meta( $args['product']->id, '_noselect', true ); if ( !empty( $noselect ) ) { $args['show_option_none'] = ''; } return $args; }Bitte keine Supportanfragen per PM! Wer etwas wissen will erstellt einen neuen Thread im Forum "Onlineshop mit WordPress" unter Bezug auf diesen Post.
Wer den Auswahltext generell ausblenden will, bleibt einfach bei der Ursprungslösung:
-
In der functions.php Deines Child Themes
-
Korrektur, der neue Filter kann auch individual auf eine Auswahl von Produkten angewendet werden. Um den Text nur bei den Produkten 46 und 716 zu entfernen folgenden Code verwenden:
-
Da Du schon zum zweiten mal anfragst und Dir die Version über die variable.php wohl nicht gefällt, habe ich mal im Quellcode von WooCommerce nachgesehen. Und siehe da, es geht. Aber nur für alle oder keine Box:
-
-
Und bitte nicht vergessen die HOME und SITE URL in WordPress auf https zu stellen, da alle Ajax Funktionen darauf zugreifen und nicht "umgeschrieben" werden.
-
Warum das? Ich denke Du bist auf einer Multisite? Also weg damit.
-
Beide Aufrufe sind falsch.
Zeile 1:
generate_tickets_pdf() ist kein gültiger Funktionsaufruf. Die () sind in jedem Fall falsch und da die Funktion aus einem anderen Plugin stammt muss der Bezug dazu hergestellt werden. Entweder mit dem Constructor Klassenname::Funktion oder wie oft bei WordPress mit einer globalen Variable.Zeile 2:
Da es sich nicht um eine PHP Klasse handelt ist der Aufruf mit $this nicht möglich.Ohne tiefer in die Plugins und das Vorhaben einzusteigen kann man da aber nicht wirklich helfen.
-
Die Kombination "jede Größe, jede Farbe" muss weg. Es dürfen nur die Kombinationen der jeweiligen Einzelgrößen und Farben existieren oder der eizelnen Größen mit allen Farben, falls die Farbe beim Preis keine Rolle spielt.
-
1. Das Plugin ist Selbstmord! (hatten wir doch gerade erst vor ein paar Tagen) Jetzt kann jeder Hacker PHP Code in Deine Datenbank einbinden und ausführen. Es hat einen Grund warum WordPress vor langer Zeit diese "Feature" entfernt hat.
2. Die Ausgabe wie in der Dokumentation beschrieben ist für einen Shortcode ungeeignet, weil es zu unvorhersehbaren Problemen kommen kann. Ein Shortcode soll niemals selbst eine Ausgabe machen. Details darfst Du Dir gerne anlesen: https://codex.wordpress.org/Shortcode_API
Ein Blick in den Quellcode des Plugins zeigt, was die Dokumentation verschweigt. Es gibt einen weiteren Parameter der die Ausgabe unterdrückt. Deswegen stellt man Fragen immer zuerst an den Entwickler, weil er das weis.
Der richtige Weg ist also einen eignen Shortcode zu erstellen:
Code
Alles anzeigenadd_shortcode( 'mmx_list_ratings', 'mmx_list_post_ratings' ); function mmx_list_post_ratings ( $attr ) { extract( shortcode_atts( array( 'limit' => '10', // Anzahl der anzuzeigenden Posts 'list' => 'high', // high oder low 'type' => 'both' // both, page oder post ), $attr) ); $output = ''; switch( $list ) { case 'low': $output = get_lowest_rated( $type, 0, $limit, 0, false); break; case 'high': $output = get_highest_rated( $type, 0, $limit, 0, false); break; } return $output; }Ausgabe der 10 am höchsten bewerteten Beiträge: [mmx_list_ratings limit=10 list=high type=post]
** Code ungetestet und rein nach Quellcode des Plugins geschrieben **
-
******************* doppelt ********************
-
Dann könntest Du, vorausgesetzt Dein Theme kann das (Enfold, Avada, Divi, u.v.a.m), das Widget in der Seite darstellen. Ansonsten bleibt der Weg das Seiten Template (in 99% der Fälle page.php) zu duplizieren, den Templatenamen ändern, den gewünschten PHP Code einzubauen und der Seite, auf der die Liste erscheinen soll, das Template zuzuweisen. Alternativ gibt es Plugins, die Action Hooks in den Templates haben über die man dann eine Funktion ausführen könnte. Ein Shortcode geht im übrigen nicht, da die Funktionen des Plugins einen Output liefern anstatt ein Wert zurückzugeben.
-
Tja ... und ich habe keine Ahnung wie

Wenn Du die Seite lesen würdest, soviel Eigeninitiative muss man verlangen, hättest Du die Antworten schon gefunden: https://wordpress.org/plugins/wp-postratings/installation/
-
ich habe eine Vielzahl an Seiten und blende diese themenbezogen in den Sidebars einzelner Seiten ein. Ich finde dieses Widget ganz praktisch, um einen schnellen Zugriff auf andere themenbezogene Seiten zu erhalten.
Jetzt ist es ja so, dass ich die Seiten ID`s und somit die Seiten die nicht angezeigt werden sollen, in jedem Widget ausschließen muss. (Hier verstehe ich schon mal nicht den Sinn dahinter und fände es viel praktischer, wenn man einfach die Seiten ID´s wählt, die man anzeigen möchte.)
Da Seiten in WordPress eigentlich eher spärlich zum Einsatz kommen sollen (themenbezogene Informationen gehören in POSTs und nicht in PAGEs) würde ich persönlich erst einmal die Seite sehen wollen um das Thema zu verstehen. Ohne genauere Kenntnis über die Seite macht eine Empfehlung, bei einem möglicherweise grundsätzlich vorhandenen Fehlverständnis für WordPress, keinen Sinn.
-
Wenn ich jetzt noch rausfinde, wie ich eine Auflistung der bestbewerteten Posts zum aktuellen Zeitpunkt bzw. Gesamt auf einer Seite, anstatt in einem Widget, darstellen kann, habe ich wohl das passende Plugin gefunden. Jemand eine Idee?Klar, Monika hatte Dir doch den Link zur Seite bereits geschickt und dort steht auch der benötigte Code:
-
-
TIPP: Neue Plugins immer "Solo" testen also ohne andere aktivierte Plugins. Das macht man z.B. auf eine zweiten WordPress Installation. So lernt man was geht und was nicht geht und hat später bei eventuellen Konflikten weniger Probleme bei der Lokalisierung.