versteckt sich unter
/wp-admin/options.php
Einfach im Browser öffnen.
Oder die Datenbank Tabelle wp-options ändern.
PHP Probleme,Tipps und Tricks
versteckt sich unter
/wp-admin/options.php
Einfach im Browser öffnen.
Oder die Datenbank Tabelle wp-options ändern.
Wenn man mit dem Yii-User Modul eigene Attribute wie Strasse und Hausnummer hinzufügen will, kann man dies tun, indem man:
3 | street | Strasse | VARCHAR | 80 | 10 | 1 | Ungültige Strasse | 2 | 3 |
Aufgrund der fehlenden Dokumentation des Moduls muss man ziemlich ausprobieren, um optionale Attribute zu kennzeichnen. Optionale Attribute kann man erreichen durch das Setzen von required auf 2 in der entsprechenden Zeile in der profiles_field Tabelle.
Sehr praktisch für die Verwendung von Pfaden im YII-Framework ist die folgende Klasse, die einen einfacher Zugriff auf die Pfade gibt und gleichzeitig die Anwendung flexibel hält bei Änderungen:
class Paths { public static function getImagesPath() { return Yii::app()->request->baseUrl .DIRECTORY_SEPARATOR."images".DIRECTORY_SEPARATOR; } public static function getRootDirectory() { return Yii::getPathOfAlias('application'); } public static function getWebRootDirectory() { return Yii::getPathOfAlias('webroot'); } public static function getExtensionDirectory() { return Yii::getPathOfAlias('ext'); } public static function getViewDirectory() { return Paths::getRootDirectory().DIRECTORY_SEPARATOR."views".DIRECTORY_SEPARATOR; } public static function getDataDirectory() { return Paths::getRootDirectory().DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR; } }
Ein Rechen-Captcha zu programmieren mit einfachen Rechenaufgaben ist erstaunlich einfach, es braucht nur 2 kleine Funktionen und schon kann man den User munter seine Mathematik-Kenntnisse testen lassen:
Der Code lässt sich beliebig erweitern: Eine Möglichkeit der Sicherung wäre: Man benutzt deutsche Akzente für die Wörter im $words-Array, wie eens, zwee, dree usw…, damit würde man es den Spam-Bots noch schwieriger machen.
drei + vier = ?
zehn – vier = ?
Wenn sich WordPress entscheidet, keine <p> Paragraph-Tags mehr auszugeben auf der Webseite,kann dies behoben werden mit der Funktion wpautop():
<?php echo wpautop(get_the_content(),0); ?>
Wenn die Paginierung/Pagination nicht mehr funktioniert, kann das an einem Aufruf der Funktion query_posts() liegen, da diese den Main-Loop verändert.
Anstelle der Funktion sollte get_posts() verwendet werden.
Für das Coden von Yii mit PhpStorm sollte aus Effizienzgründen folgenden Einstellungen vorgenommen werden:
Eine Anleitung gibt es hier.
Es dient zur einfachen Navigation von Controller zu View und mehr. Es muss lediglich die YiiStorm.jar in das PHPStorm Verzeichnis kopiert werden und die IDE neu gestartet werden.
Danach kann man z.B. direkt zum view File navigieren mit Strg+Mausklick in einem Controller-Aufruf wie:
$this->render('index');
Das Yii Framework für PHP ist zur Zeit das beste Framework für Web Applikationen, wenn man der Meinungen von vielen Freelancern und phpframeworks.com vertraut.
Mit einem einfach Query lassen sich Posts mit einem bestimmten custom-field suchen und ausgeben. Die Posts werden zusätzlich nach dem Erscheinungsdatum sortiert.
$my_custom_field = 'my_cool_custom_field'; $queryCustomField = new WP_Query( array ( 'meta_key' => $my_custom_field, 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => 5, 'post_status' => array( 'publish') ) ); while ($queryCustomField->have_posts()) :; $queryCustomField->the_post(); $my_custom_field = get_post_meta($post->ID, $my_custom_field, true); endwhile; wp_reset_postdata();
Um eine solche Abfrage zu realisieren, braucht es ein wenig MySQL in Verbindung mit WordPress. Mit der Funktion getCategoriesWithMostArticlesInLastDays() kann man die beliebtesten X Kategorien innerhalb der letzten Y Tage bestimmen:
function getCategoriesWithMostArticlesInLastDays($categoriesCount, $lastDaysCount) { global $wpdb; $querystr = " SELECT $wpdb->terms.name AS categoryName,COUNT($wpdb->terms.term_id) AS countCategory, $wpdb->terms.term_id as categoryId FROM $wpdb->posts LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) LEFT JOIN $wpdb->terms ON ($wpdb->terms.term_id = $wpdb->term_taxonomy.term_id) WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' AND $wpdb->posts.post_date > TIMESTAMP(DATE_SUB(NOW(), INTERVAL $lastDaysCount DAY )) AND $wpdb->term_taxonomy.taxonomy = 'category' GROUP BY $wpdb->terms.term_id ORDER BY COUNT($wpdb->terms.term_id) DESC LIMIT $categoriesCount "; $categoriesWithMostArticlesInLastDays = $wpdb->get_results($querystr, ARRAY_A); foreach($categoriesWithMostArticlesInLastDays as $key => $category) { $categoriesWithMostArticlesInLastDays[$key]["link"] = get_category_link($category['categoryId']); } return $categoriesWithMostArticlesInLastDays; }