Menü mit aufklappbarer Suche

Immer wieder benötigt: Ein Such-Icon am Ende der horizontalen Navigation, welches sich auf Klick öffnet/schliesst.

Bearbeitet werden 3 Dateien: functions.php, searchform.php (falls vorhanden, ansonsten neu anlegen) und style.css (oder das jeweilige Stylesheet).

functions.php

Fügt am Ende des Hauptmenüs einen zusätzlichen Menüpunkt mit der Suche ein.

1
2
3
4
5
6
7
8
9
function fb_add_search_box ( $items, $args ) {
 
       // only on primary menu (or your menu-name)
       if( 'main-nav' === $args -> theme_location )
             $items .= '<li class="menu-item menu-item-search">' . get_search_form( FALSE ) . '</li>';
 
       return $items;
 }
 add_filter( 'wp_nav_menu_items', 'fb_add_search_box', 10, 2 );

searchform.php

Angepasstes Suchfeld.

1
2
3
4
5
6
<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
	<label>
	<input type="submit" class="search-submit button" value="<?php echo esc_attr_x( 'Search', 'yourtheme' ) ?>" />
		<input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Suchen...', 'yourtheme' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'yourtheme' ) ?>" />
	</label>
</form>

style.css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.menu-item-search .search-field {
	background-color: transparent;
	background-image: url(../images/lupe.svg);
	background-position: 5px center;
	background-repeat: no-repeat;
	background-size: 24px 24px;
	border: none;
	cursor: pointer;
	height: 37px;
	margin: 3px 0;
	padding: 0 0 0 34px;
	position: relative;
	-webkit-transition: width 400ms ease, background 400ms ease;
	transition:         width 400ms ease, background 400ms ease;
	width: 0;
}
 
.menu-item-search .search-field:focus {
	background-color: #fff;
	border: 1px solid #32B561;
	cursor: text;
	outline: 0;
	width: 200px;
}
.search-form
.search-submit { 
display:none;
}

Zusammengestellt aus folgenden Quellen:

Wieder einmal ein leidiges RealUrl Problem: Eine Multidomain-Seite funktionierte prinzipiell prächtig, nur bei fehlerhaften Einloggen oder beim Ausloggen der Fe-User trat das lästige „Segment 1 was not a keyword for a postVarSet as expected“ auf. Felogin ohne RealUrl funktionierte jedoch anstandslos.

Lösung:

In der RealUrl-Config fehlte in der Sektion init der Wert

1
'postVarSet_failureMode' => ' '

Nachdem Einfügen dieses Wertes funktioniert nun alles wie gewünscht.

Wird beim Indexieren von Seiten die Fehlermeldung The path to pdftools is not correctly set in the extension manager configuration. You can get the path with „which pdfinfo“ or „which pdftotext“ generiert obwohl der Pfad in der Extension-Konfiguration richtigangegeben ist, kann es am open_basedir liegen. Hier muss /usr/bin freigegeben sein, da mit is_file nach der jeweiligen Tool (catdoc usw.) gesucht wird.

Gefunden in den Kommentaren auf der Extensionseite.

Ab und zu benötigen wir mehr als nur das Standard-RTE Feld im Backend von wordPress. Das Plugin Multiple Content Blocks ist eine einfache Möglichkeit mehrere Inhaltsblock pro Template zu erstellen.

An gewünschter Stelle wird lediglich

1
the_block(' Label des Blocks ');

eingefügt.

Wenn nach dem Einfügen der neue Block im Backend nicht gezeigt wird,  reicht es die entsprechende Seite einmal im Frontend aufzurufen. Dann erscheint der Block auch im Backend.

Da ich immer wieder danach suche, hier als kleine Gedankenstütze: variable Empfänger und Betreff mit einem Powermail-Formular 2.x.

Die Auswahl des Betreffs erfolgt in meinem Fall über ein Select-Feld mit der ID 13. Das Select-Feld hat folgende Optionen:

  • **** bitte wählen ****|
  • Betreff Nummer 1|1
  • Alternativer Betreff|2

Anmerkung: Die Pipe trennt den angezeigten Wert von der tatsächlichen Value des Option-Tags. 

Auf der Seite des Formulares wird ein Ext-Template erstellt in dessen Setup folgende TS-Condition geschrieben wird:

1
2
3
4
5
6
7
8
9
10
[globalString = GP:tx_powermail_pi1|field|13 = 1]
  plugin.tx_powermail.settings.setup.receiver.subject = Betreff Nummer 1
  plugin.tx_powermail.settings.setup.receiver.email = empfaenger1@email.de
  plugin.tx_powermail.settings.setup.sender.subject = Ihre Nachricht: Betreff Nummer 1 
[global]
[globalString = GP:tx_powermail_pi1|field|13 = 2]
  plugin.tx_powermail.settings.setup.receiver.subject = Alternativer Betreff
  plugin.tx_powermail.settings.setup.receiver.email = empfaenger2@email.de
  plugin.tx_powermail.settings.setup.sender.subject = Ihre Nachricht:Alternativer Betreff
[global]