Das Putzlowitsch Test- und SEO-Blog

Bilder in der WordPress-Mediathek neu verknüpfen

Bilder und Artikel

Lädt man in WordPress Bilder direkt im Editor hoch, werden sie automatisch mit dem aktuell bearbeiteten Artikel bzw. der Seite verknüpft. Diese Bilder werden dann z.B. in der Worpdress-Galerie zu diesem Artikel angezeigt. Die Zuordnung eines Bildes zu einem Artikel ist normalerweise nicht änderbar. Auch wenn man ein Bild in einem oder mehreren anderen Artikeln verwendet bleibt die Eltern (Artikel) – Kind (Bild) – Beziehung bestehen.

Elternlose Bilder

Wird ein Bild in der Mediathek hochgeladen, ist es zunächst elternlos. In der Bilderliste steht dann in der Spalte „Verwendet in“ wie bei den Aprikosen nur „(Nirgendwo verwendet)“.

Wordpress-Mediathek: Funktionen für Bilder

Mit einem Klick auf „Verknüpfen“ kann man das Bild dann einem Artikel oder einer Seite zuweisen. Das Bild bekommt seine Eltern auch zugeteilt, wenn es erstmalig in einem Artikel oder einer Seite verwendet wird.

Bilder-Adoption

Manchmal kann es wünschenswert sein, ein Bild einem anderen Artikel zuzuordnen. Ein Weg ist, dieses direkt in der Datenbank zu erledigen. Dazu muß im Feld post_parent des Bildes die ID des gewünschten Artikels eintragen.

Einfacher ist es natürlich, wenn man die Zuweisung in der WordPress-Mediathek durchführen kann. Eine entsprechende Funtkion kann mit ein paar Zeilen PHP-Code nachgerüstet werden:

function plw123_add_attach( $actions, $post, $detached )
{
  if ( current_user_can( 'edit_post', $post->ID ) )
    $actions['attach'] = '<a href="#the-list" onclick="findPosts.open( \'media[]\',\''.$post->ID.'\' );return false;" class="hide-if-no-js">'.__( 'Attach' ).'</a>';
  return $actions;	
}
add_filter( 'media_row_actions', 'plw123_add_attach', 10, 3 );

Der PHP-Code kann z.B. in die Datei functions.php des Themes eingetragen werden.

Der Link „Verknüpfen“ wird dann für jedes Bild bei den Funktionen angezeigt, die beim Überfahren einer Mediathekzeile mit der Maus eingeblendet werden (Beispiel Kamera):

Wordpress-Mediathek: Funktion "Verknüpfen" bei jedem Bild

Die vorgestellte Lösung habe ich mit WordPress 3.2.x und 3.3.x getestet.

25 Kommentare »

Ein nacktes WordPress installieren

WordPress-Installation

Eine neue WordPressinstallation enthält üblicherweise bereits ein paar Beispieldaten. So sind schon eine Seite und ein Artikel mit einem Kommentar vorhanden, etwa wie dieser hier. Die Blogrolle ist auch schon mit ein paar Links gefüllt.

Wenn man das nicht möchte, weil man beispielsweise einen WordPress-Export (per WP-Export als xml) importieren möchte und die IDs der Artikel und Seiten erhalten bleiben sollen, kann man eine benutzerdefinierte Installation verwenden.

WordPress lädt am Anfang der Installation die Datei wp-content/install.php, falls sie vorhanden ist. In dieser kann man einige Installationsfunktionen „überschreiben“. Das funktioniert so wie bei den Funktionen aus der pluggable.php im Verzeichnis wp-includes. WordPress prüft, ob eine Funktion bereits vorhanden ist:

if ( !function_exists('wp_install') ) :
 ...
endif;

Falls nicht, wird die WordPress-Funktion „installiert“, andernfalls wird die bereits vorhandene verwendet. Die wordpresseigenen Installationsfunktionen findet man in wp-admin/includes/upgrade.php, diese kann man sich als Vorlage für eigene Modifikationen hernehmen.

WordPress ohne „Hallo Welt“

Um nun eine leere WordPress-Installation zu erhalten, wird die Funktion wp_install_defaults in der Datei wp-content/install.php neu definiert:

<?php
function wp_install_defaults($user_id) {
}
?>

Es ist einfach eine leere Funktion, dadurch wird aber auch keine Default-Kategorie für Artikel und Links erstellt. Möchte man die Standardkategorien trotzdem haben, nimmt man den oberen Teil aus der originalen WP-Funktion (bis // Now drop in some default links) in die eigene Funktion mit rein. Dabei das global $wpdb nicht vergessen.

Wie man auf diese Weise bereits Plugins bei der Installation aktivieren kann, hatte ich früher schon mal beschrieben.

Nachdem die Anpassungen in der install.php vorgenommen wurden und diese in das WordPress-Content-Verzeichnis kopiert wurde, kann man die WordPressinstallation wie gewohnt starten.

Weitere Artikel mit Bezug zu diesem:
Keine Kommentare »