Die Spalten im Backend von WordPress lassen sich erweitern und Filtern, ebenso die Daten der User-Profile. Ein kleines Plugin soll dies demonstrieren und vielleicht hilft es dem einem oder anderen es zu verstehen und seine eigenen Anforderungen umzusetzen.
Die Einfachheit des Plugins spricht für sich, daher wollte ich es veröffentlichen und denke, dass wer mit Code arbeitet, die Hooks erkennt und versteht, woher was kommt und wo wirkt. In vielen Beispielen sind komplexe Anwendungen ersichtlich, die aber dem Lerneffekt im Wege stehen und die Einfachheit verdecken. Ich hoffe, dass das kleine Plugin genau diesen Wert abbildet und einen Ansatz für eigene Möglichkeiten aufzeigt.

Das kleine Plugin ist auf Anforderung entstanden, da diverse Autoren schreiben und der Link des Autors jeweils geprüft werden muss. Daher war es nahe liegend, dass die URL am Artikel des jeweiligen Autors und am Profil schnell ersichtlich ist.
Die Inhalte können beliebig angepasst werden, deutlich wird aber, wie einfach man die Daten des Users an verschiedenen Stellen nutzen kann. Die Hooks für die Erweiterung der Spalten in den verschiedenen Sichten sollten deutlich machen, wie es funktioniert und wo man ansetzen muss, wenn das Know How bisher nicht vorhanden war.

<?php
/**
* Plugin Name: Add User Meta Website to different Tables
* Plugin URI:
* Text Domain: add-user-meta-to-table
* Domain Path: /languages
* Description: Add the Website data of user profile to users.php table and table of edit posts
* Version: 1.0.0
* Author: Frank Bültge
* Author URI: http://bueltge.de
* License: GPLv3
*/
/**
License:
==============================================================================
Copyright 2011 Frank Bültge (email : frank@bueltge.de)
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Requirements:
==============================================================================
This plugin requires WordPress >= 3.3 and tested with PHP Interpreter >= 5.3
*/
if ( ! function_exists( 'add_action' ) ) {
echo "Hi there! I'm just a part of plugin, not much I can do when called directly.";
exit;
}
add_action( 'admin_init', array( 'Fb_Add_User_Website', 'init' ) );
class Fb_Add_User_Website {
public function init() {
// add to user table
add_filter( 'manage_users_columns', array( __CLASS__, 'add_user_columns' ) );
add_action( 'manage_users_custom_column', array( __CLASS__, 'add_custom_user_columns' ), 10, 3 );
// add to the edit posts table
add_filter( 'manage_posts_columns', array( __CLASS__, 'add_user_columns' ) );
add_action( 'manage_posts_custom_column', array( __CLASS__, 'add_custom_post_columns' ), 10, 2 );
}
/**
* Add String to table head
*
* @param $columns Array
* @return $columns Array
*/
public function add_user_columns( $columns ) {
$columns['user_url'] = __( 'Website' );
return $columns;
}
/**
* Add value to the custom field
*
* @param $value
* @param $column_name var for column
*/
public function add_custom_user_columns( $value, $column_name, $id ) {
if ( 'user_url' === $column_name && is_integer( $id ) ) {
$user_url = esc_attr( get_the_author_meta( 'user_url', (int) $id ) );
if ( ! empty( $user_url ) )
return '<a href="' . $user_url . '">' . str_replace( 'http://', '', $user_url ) . '</a>';
}
}
public function add_custom_post_columns( $column_name, $post_id ) {
if ( 'user_url' === $column_name ) {
$user_id = get_the_author_meta( 'ID' );
$user_url = esc_attr( get_the_author_meta( 'user_url', (int) $user_id ) );
if ( ! empty( $user_url ) )
echo '<a href="' . $user_url . '">' . str_replace( 'http://', '', $user_url ) . '</a>';
}
}
} // end class
Wenn ich das richtig verstanden habe wird mit diesem Plugin der Benutzername direkt mit der Webseite des Benutzers verlinkt oder? Ich werde es einfach mal ausprobieren.
@Sabine: Im User-Profil ist doch ein Feld, wo ein user eine URL hinterlegen kann. Dieses Feld wird hier zum Beitrag geladen, so dass diese URL schnell sichtbar ist, so dass der Ausgabe im Frontend eine geprüfte URL des Users gegenüber steht.
Kann ich wieder verwenden Sie Code auf meine zukünftigen Projekte? Ich möchte nicht, Urheberrechts-Probleme.
@Daniel: ja, GPL License
Für eine angedachte Erweiterung könnte das genau das Richtige sein. Ich werde's ausprobieren. Dankeschön erstmal!
Immer wieder Danke, an Euch Entwickler. Ihr last uns Normalos weit über den Tellerrand gucken. Wie viele andere Erweiterungen, werde ich auch diese ausprobieren.