Samstag, 18. Februar 2012

Wordpress: Ist User eingeloggt?

Manche Seiten der eigenen Wordpress Seite sollen nur Regsitrierten Nutzern zugänglich sein. Um eine erstellte Seite nur eingeloggten Nutzern zugänglich zu machen muss eine Abfrage vor dem auszugebenen Content rein.

<?php if ( is_user_logged_in() ) {
    echo 
'Hallo registrierter Nutzer!';
} else {
    echo 
'Nicht registriert? dann mal los!';
}
?>

Mittwoch, 15. Februar 2012

Wordpress: Nach dem Logout redirect auf eine andere Seite

Wer Wordpress möchte, dass nach dem logut nicht die standard login Seite von Worpress geleitet wird, der muss nicht zwingend ein plugin nutzen. Man schießt doch nicht mit kanonen auf spatzen, oder. ganz easy pisi, folgenden code in eure function.php einfüge und eventuell anpassen, au fwelche seite er lenken soll:


add_filter('logout_url', 'projectivemotion_logout_home', 10, 2);
function projectivemotion_logout_home($logouturl, $redir)
{
$redir = get_option('siteurl');
return $logouturl . '&amp;redirect_to=' . urlencode($redir);
}


falls Ihr auf eine bestimmte seite als die startseite lenken möchtet ersetzt
$redir = get_option('siteurl');
mit
$redir = "http://localhost/xxx<--hier sollte eure wunsch url stehen :-)";

Sonntag, 12. Februar 2012

Wordpress Revisionen deaktivieren

Wie deaktiviert man (ohne Plugin) erfolgreich die Revisionen? Duie meisten WP Nutezr kennen das Problem mit dem schnell-anwachsenden Datensätzen in der wp_post Datenbank, bei Revisionen (bzw: inherit)

Füge in der config.php folgendene drei Zeilen ein.
/** Meine Änderung zur Deaktivierung der Revisionen*/
define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', 60000);

Somit schaltest Du Gleichzeit die Autosavezeit die auch zur unnötigen Datenbankschwemme führen kann, auf 60000 Sekunden. In der Zeit sollte man es wirklich schaffen einen Post fertig zu kriegen ohne das ein Autosave die Datenbank unnötig beschreibt. Allerdings hat der Autosave auch einen nicht unnerheblichen Mehrwert. So kann der Artikel bei einem PC Crasch oder Brwoser Crasch in den meisten Fällen weiter bearbeitet werden.

Müsst ihr wissen!
Greetz

Dienstag, 2. August 2011

Wordpress - post_title automatisch aus Custom Fields generieren lassen

Nutzt man zum Beispiel einen Wordpress Blog um zum Beispiel Produkte oder Ähnliches, was in großer Anzahl vorhanden sein soll und nutzt man den Artikel mit schmucken Custom Fields um den Artikel so zu pimpen, dann kann es manchmal sein, dass es besser wäre den Artikel Titel durch die Custom Fields generieren zu lassen um eine bestimmte Einheitlichkeit zu besitzen.

Bsp:
wordpress.de/land/XY_1-spracheXY_1-nrXY_1
wordpress.de/land/XY_2-spracheXY_2-nrXY_2
wordpress.de/land/XY_3-spracheXY_3-nrXY_3

Das händlisch und tausend oder Mehre Male zu machen ist fast absurd. Also habe ich mir mal einen Ansatz ausgedacht. Der ist bestimmt ausbaufähig, was meint Ihr?

In der Datei post.php findet Ihr die Funktionen die sich Rund um den Post beschäftigen. Bei Zeile 2300 (WP Version 3.0.5) findet ihr in dieser Datei die Update Funktion. Sucht einfach nach: if .... ($update) { ...

In der Schleife füght ihr in den TRUE Bereich (erste Bereich hinter der IF Bedingung) folgendes ein: $data['post-title_]=$meta_value;

Vor if ($update) lasst ihr euch den Meta Value ermitteln über:

$meta_values_land = get_post_meta($post_ID, land, true);
$meta_value=$meta_values_land;

Jetzt könnt Ihr Euer Post erstellen und den Titel leer lassen. Dann speichern oder auch publizieren klicken. Danach noch ein Mal publizieren drücken und dann seht ihr den Meta-Value Namen als Post_Title . Nachteil ist, dass er ganz viele Inherit Einträge in der SQL Datenbank hinterlässt. Ab und an mal damit säubern:
DELETE FROM wp_posts WHERE post_status='inherit'


Randbemerkung: Was bedeutet sanitize_title? Das findet man auch ungefähr dort. Hier wird der Title in einen Namen verändert, den man dann in rewrite Urls benutzen kann. Also aus: " Merkel ist blöd"  wird " merkel-ist-blod".

Montag, 1. August 2011

Wordpress - Paging bei custom Post Types

Das normale blättern ( Paging ) von Artikeln auf der Seite ist bei Wordpress eine vordefinierte Funktion. Probleme entstehen nur wenn man eigene Post Types benutzt. Dann werden eventuell die letzten 10 Artikel angezeigt, aber man kann nicht blättern oder das Blättern bringt keine weitere und noch älterenen Artikel zum vorschein sondern lädt ständig die selben letzten 10 Artikel.


Lege einen eigenen Loop an. Zum Beispiel du hast eine Custom Post Type names News. Dann lege ein WP (Wordpress) Loop namens loop-news.php an. Dann schreibe in deiner news-page folgendes:

        <div id="container">
            <div id="content" role="main">
<?php
$type = 'news';
$args=array(
  'post_type' => $type,
  'post_status' => 'publish',
  'paged' => $paged,
  'posts_per_page' => 10,
  'caller_get_posts'=> 1
);

$wp_query = new WP_Query($args);
?>

<?php

 get_template_part( 'loop', 'news' );?>
            </div><!-- #content -->
            <?php get_sidebar(); ?>
        </div><!-- #container -->
<?php get_footer(); ?>

in deinem loop kannst du die ausgabe noch anpassen. wenn du kein plan hast wie das geht, nutze die hier vorgesehende kommentarfunktion um deine Frage auf die Allgemeinheit loszulassen ;)

http://codex.wordpress.org/Pages

Sonntag, 31. Juli 2011

Wordpress - Custom Fields - Problem mit dem Plugin More Fields

Ich bin ja kein Freund von Plugins. Man könnte annehmen, dass ich Wordpress Plugins genaus wenig mag wie die deutsche Rechtschreibung. Aber dem ist überhaupt nicht so. Ich mag sehr die deutsche Rechtschreibung, allerdings bin ich dieser unter bestimmten umständen überhaupt nicht gewillt mächtig zu sein.

Aber jetzt die Frage und die Antwort zum Problem wie man die Meta Fields des Plugins "More Fields" in Variablen schreiben. Also:
$var = meta('custom_field_name');

echo $var ." bla bla " . $var1;
Lösung:
$post_id = get_the_ID();
$meta_key = xyx (das wie ihr das Feld genannt habt);
$single =true;

$meta_values_1 = get_post_meta($post_id, $meta_key, $single);

Und so habt ihr wieder ein wenig unabhängigkeit von fucking plugins ;)

Sonntag, 24. Juli 2011

WP - Custom Post Types anlegen

Um ein Custom Post Type anzlegen und eine dazugehörige Taxonomie sowie Tags füge folgenden Code in die function.php ein.

add_action('init', 'post_type_arzt');
function post_type_arzt()
{
register_post_type('arzt',
array(
'label' => __('Arzt'),
'public' => true,
'_builtin' => false,
'show_ui' => true,
'has_archive' => true,
'supports' => array('thumbnail','title','editor','excerpt','comments' ) ) );
ate

register_taxonomy( 'stichworte', 'arzt',
array(
'hierarchical' => false,
'label' => __('Stichworte'),
'query_var' => 'stichworte',
'rewrite' => array( 'slug' => 'stichworte' ) ) );

register_taxonomy( 'Stadt_kat', 'arzt',
array(
'hierarchical' => true,
'label' => __('Arztbereich-Categories'),
'singular_label' => 'Arztbereich-Category',
'rewrite' => true,
'query_var' => true) ); 
}

Um das Array des Custom Post Types zu bearbeiten, beachte welche Elemente bearbeitet werden können.

supports

(array) (optional) An alias for calling add_post_type_support() directly.
Default: title and editor
  • 'title'
  • 'editor' (content)
  • 'author'
  • 'thumbnail' (featured image, current theme must also support post-thumbnails)
  • 'excerpt'
  • 'trackbacks'
  • 'custom-fields'
  • 'comments' (also will see comment count balloon on edit screen)
  • 'revisions' (will store revisions)
  • 'page-attributes' (menu order, hierarchical must be true to show Parent option)
  • 'post-formats' add post formats, see Post Formats


Ein genaue Liste findest Du hier:
http://codex.wordpress.org/Function_Reference/register_post_type


Quelle: http://bloggonaut.net/custom-post-types-und-custom-taxonomies