Ich verwende Posts vom Typ Posts, um Portfolioelemente anzuzeigen, und es sieht seltsam aus, wenn das Portfolio als Posts gekennzeichnet ist. Gibt es eine Möglichkeit, Posts in Portfolio umzubenennen, um deren Verwendung besser widerzuspiegeln?
Ich verwende Posts vom Typ Posts, um Portfolioelemente anzuzeigen, und es sieht seltsam aus, wenn das Portfolio als Posts gekennzeichnet ist. Gibt es eine Möglichkeit, Posts in Portfolio umzubenennen, um deren Verwendung besser widerzuspiegeln?
Antworten:
Wenn Sie das Erscheinungsbild von Posts einfach umbenennen möchten, anstatt einen benutzerdefinierten Post-Typ zu erstellen, fügen Sie diesen Code zu Ihrer Datei functions.php hinzu.
// hook the translation filters
add_filter( 'gettext', 'change_post_to_portfolio' );
add_filter( 'ngettext', 'change_post_to_portfolio' );
function change_post_to_portfolio( $translated ) {
$translated = str_ireplace( 'Post', 'Portfolio', $translated ); // ireplace is PHP5 only
return $translated;
}
Im Interesse der Transparenz habe ich diesen Code aus diesem Artikel erhalten , obwohl ich in der Vergangenheit ähnliche Tricks angewendet habe.
Ich habe das folgende Skript verwendet, um den Standardposttyp umzubenennen:
function change_post_menu_label() {
global $menu, $submenu;
$menu[5][0] = 'Portfolio';
$submenu['edit.php'][5][0] = 'Portfolio';
$submenu['edit.php'][10][0] = 'New Portfolio';
$submenu['edit.php'][16][0] = 'Portfolio Tags';
echo '';
}
add_action( 'admin_menu', 'change_post_menu_label' );
function change_post_object_label() {
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = 'Portfolio';
$labels->singular_name = 'Portfolio';
$labels->add_new = 'New Portfolio';
$labels->add_new_item = 'New Portfolio';
$labels->edit_item = 'Edit Portfolio';
$labels->new_item = 'New Portfolio';
$labels->view_item = 'View Portfolio';
$labels->search_items = 'Search Portfolio';
$labels->not_found = 'Not found';
$labels->not_found_in_trash = 'Not found in trash';
}
add_action( 'init', 'change_post_object_label' );
Sie müssen einen benutzerdefinierten Beitragstyp "Portfolio" erstellen.
Beiträge sind Beiträge. Warum sollten Sie versuchen, sie als etwas zu verwenden, das sie nicht sind, und dann versuchen, ihre Nomenklatur zu ändern, anstatt ein oder zwei einfache Funktionen einzuschreiben functions.php, die dazu führen, dass Sie sowohl die genaue Funktionalität als auch die genaue Nomenklatur haben, die Sie möchten?
UPDATE wp_posts SET post_type = 'funny-bunny' WHERE post_type = 'post';höchstwahrscheinlich das Tabellenpräfix (wp_) ändern, um diese Einstellung in Ihrer aktuellen Installation widerzuspiegeln.
// hook the translation filters
add_filter( 'gettext', 'change_post_to_article' );
add_filter( 'ngettext', 'change_post_to_article' );
function change_post_to_article( $translated ) {
$translated = str_ireplace( 'Post', 'Article', $translated ); // ireplace is PHP5 only
return $translated;
}
Ich habe diesen Tipp vom Smashing Magazine erhalten und getestet und er funktioniert hervorragend
http://www.smashingmagazine.com/2011/05/10/new-wordpress-power-tips-for-template-developers-and-consultants/
Ich habe diesen Thread gefunden, als ich nach einer Lösung gesucht habe, um den Beitragstyp von einem Namen in einen anderen zu ändern.
Anstatt eine benutzerdefinierte Abfrage durchzuführen, wie von jemandem hier vorgeschlagen, habe ich einfach Folgendes getan:
$post = get_post( $id ); // The current post id
$post->post_type = 'receipt'; // The new post type name
wp_update_post( $post ); // Updating the new information
Die cpt müssen ofc bereits erstellt und formatiert worden sein ..
Benennen Sie Beiträge in Portfolio um
function litho_posts_portfolio() {
global $menu;
global $submenu;
$menu[5][0] = __("Portfolio", 'litho');
$submenu['edit.php'][5][0] = __("Portfolio", 'litho');
$submenu['edit.php'][10][0] = __("New Item", 'litho');
echo '';
}
function litho_posts_portfolio_label() {
global $wp_post_types;
$labels = &$wp_post_types['post']->labels;
$labels->name = __("Portfolio", 'litho');
$labels->singular_name = __("Item", 'litho');
$labels->add_new = __("New Item", 'litho');
$labels->add_new_item = __("New Item", 'litho');
$labels->edit_item = __("Edit Item", 'litho');
$labels->new_item = __("Item", 'litho');
$labels->view_item = __("View Item", 'litho');
$labels->search_items = __("Search Portfolio", 'litho');
$labels->not_found = __("No Item Found", 'litho');
$labels->not_found_in_trash = __("No Item found in Trash", 'litho');
}
add_action( 'init', 'litho_posts_portfolio_label' );
add_action( 'admin_menu', 'litho_posts_portfolio' );
__()Funktion.
echo '';?
Wenn Sie nur die Bezeichnung des Admin-Menüs unter Post -> Portfolio ändern möchten, sehen Sie sich diese Frage an:
Ändern der Admin-Menübezeichnungen
[Aktualisieren]
Mit diesem Plugin- Admin-Menü-Editor können Sie die Menübezeichnungen einfacher ändern - ich habe es jedoch noch nicht getestet.
Sie müssen lediglich einen weiteren benutzerdefinierten Beitrag mit den gleichen Funktionen wie ein normaler Beitrag erstellen. Sie können dann das Menü Beiträge folgendermaßen deaktivieren:
function remove_menus()
{
global $menu;
$restricted = array( __('Posts'));
end ($menu);
while (prev($menu))
{
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted))
{
unset($menu[key($menu)]);
}
}
}
add_action('admin_menu', 'remove_menus');