X

Benutzerdefinierte Metabox zum Auflisten aller Audiodateien aus der Mediathek

Schnipsel von IsItWP

Suchen Sie nach einer Möglichkeit, Ihrer Beitragsbearbeitungsansicht eine Metabox hinzuzufügen, die alle Audiodateien enthält? Es gibt wahrscheinlich ein Plugin dafür, aber wir haben einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um eine benutzerdefinierte Metabox hinzuzufügen, die alle Audiodateien aus der WordPress-Mediathek auflistet.

Anweisungen:

Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:

	add_action("admin_init", "audio_init");
	add_action('save_post', 'save_audio_link');

	function audio_init(){
		add_meta_box("mp3-audio", "MP3 AUDIO", "audio_link", "post", "normal", "low");
		}

	function audio_link(){
		global $post;
		$custom  = get_post_custom($post->ID);
		$link    = $custom["link"][0];
		$count   = 0;

		echo '<div class="link_header">';

		$query_audio_args = array(
			'post_type' => 'attachment',
			'post_mime_type' =>'audio',
			'post_status' => 'inherit',
			'posts_per_page' => -1,
			);

		$query_audio = new WP_Query( $query_audio_args );
		$audio = array();

		echo '<select name="link">';
		echo '<option class="audio_select">SELECT AUDIO FILE</option>';
		foreach ( $query_audio->posts as $file) {
		   if($link == $audio[]= $file->guid){
		      echo '<option value="'.$audio[]= $file->guid.'" selected="true">'.$audio[]= $file->guid.'</option>';
			 }else{
		      echo '<option value="'.$audio[]= $file->guid.'">'.$audio[]= $file->guid.'</option>';
			 }
			$count++;
		}
		echo '</select><br /></div>';
		echo '<p>Selecting an audio file from the above list to attach to this post.</p>';
		echo '<div class="audio_count"><span>Files:</span> <b>'.$count.'</b></div>';
	}
	function save_audio_link(){
		global $post;
		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ return $post->ID; }
		update_post_meta($post->ID, "link", $_POST["link"]);
	}

	add_action( 'admin_head', 'audio_css' );
	function audio_css() {
		echo '<style type="text/css">
		.audio_select{
			font-weight:bold;
			background:#e5e5e5;
			}
		.audio_count{
			font-size:9px;
			color:#0066ff;
			text-transform:uppercase;
			background:#f3f3f3;
			border-top:solid 1px #e5e5e5;
			padding:6px 6px 6px 12px;
			margin:0px -6px -8px -6px;
			-moz-border-radius:0px 0px 6px 6px;
			-webkit-border-radius:0px 0px 6px 6px;
			border-radius:0px 0px 6px 6px;
			}
		.audio_count span{color:#666;}
			</style>';
	}

	function audio_file_url(){
		global $wp_query;
		$custom = get_post_custom($wp_query->post->ID);
		echo $custom['link'][0];
	}

Fügen Sie diesen Code-Schnipsel hinzu, um die angegebene Audio-URL in Ihrer WordPress-Vorlagendatei anzuzeigen.

<? 
        audio_file_url() 
?>

Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzufügen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress hinzufügen, damit Sie Ihre Website nicht versehentlich beschädigen.

Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie zum Beispiel: 19 beste WordPress-Plugins für Fotografen und 30 Möglichkeiten, mit Online-Blogs Geld zu verdienen.

Kommentare   Hinterlasse eine Antwort

  1. Michael Wilhelmsen 25. Januar 2014 um 15:45 Uhr

    Hallo Kevin, könntest du mir sagen, wie ich die URL erhalte, um sie als Audio-Shortcode in meinem Theme anzuzeigen?

  2. Hallo,

    Erstens ist das brillant, ich denke, so etwas sollte Teil der Kernfunktionalität von WordPress sein.

    Ich habe mir das angesehen, um zu sehen, ob ich es als Leitfaden für etwas verwenden kann, das ich tue. Ich frage mich, ob es eine Möglichkeit gibt, dies anzupassen, um Link-Kategorien anstelle von Mediendateien anzuzeigen? Metaboxen mit Kontrollkästchen und Feldern sind mir vertraut, aber Dropdowns sind für mich neu, und ich spiele mit get_terms(link_category) herum, aber es ist mir ein bisschen zu viel, wie ich es in eine solche Lösung einarbeiten kann.

    Irgendwelche Ideen? Wenn nicht, ist das in Ordnung.

    Danke!

    1. Hallo Jen,
      Was versuchst du zu tun? Wenn du mir eine kurze E-Mail darüber schickst, sollte ich dir helfen können, die Dinge in Gang zu bringen.
      http://wpsnipp.com/index.php/contact/

  3. Vielen Dank! Das ist genau das, was ich gebraucht habe!

    1. Hey Doug, cool  freut mich, dass dir der Schnipsel gefällt.

  4. Hallo,
    Danke für deinen Beitrag.
    Ich habe eine Frage: Wie zeige ich den Dateinamen anstelle der Dateiuhrl an.
    Entschuldigung für mein schlechtes Englisch.
    Anne

    1. Hallo Anne, du wirst auf Zeile 24 und 26 bemerken – $file->guid ändere die zweite Instanz in jeder Zeile oder guid zu post_title, z. B.:   $file->post_title

      Zeile 24
      ———-

      echo ‘guid.“ selected=”true”>’.$audio[]= $file->guid.”;

      zu
      echo ‘guid.“ selected=”true”>’.$audio[]= $file->post_title.”;

      Zeile 26:
      ———–
      echo ‘guid.“>’.$audio[]= $file->guid.”;

      zu
      echo ‘guid.“>’.$audio[]= $file->post_title.”;

      1. Hallo Kevin,
        Vielen Dank für deine Hilfe!
        Anne

        1. Kein Problem Anne, viel Spaß mit den WordPress-Snippets.

  5. Nun, nette Tipps. Gibt es eine Beispielseite, die dein Skript bereits erfolgreich nutzt?

    1. Das ist schwer zu sagen, da viele Leute dieses Snippet mögen, aber da es sich um ein Admin-Snippet handelt, ist es schwer zu sagen.

  6. Hallo Kevin, ich habe eine Anfrage, die sich auch auf diesen Artikel beziehen könnte. Ich hoffe, du könntest sie dir ansehen und überlegen, ob du einen Artikel darüber veröffentlichen könntest.

    Meine Benutzer verwenden benutzerdefinierte Felder, um Dateien wie PDF, Word usw. an ihre Beiträge anzuhängen. Es wäre wunderbar, wenn ich es den Lesern etwas leichter machen könnte zu verstehen, dass dies eine Datei und keine Verknüpfung zu anderen Websites ist, indem ich automatisch ein Symbol links neben dem Dateinamen hinzufüge.
    Zum Beispiel lädt ein Benutzer eine PDF-Datei hoch und unter dem Inhalt (Frontend) steht der Dateiname und daneben ein PDF-Symbol. Ich verwende normalerweise das Custom Field Template Plugin.

    Ich schätze deine Sorge.

    1. Hallo Zeb, du kannst so etwas mit JavaScript machen,
      http://cool-javascripts.com/jquery/add-icons-to-your-links-automatically-using-jquery-css.html

      Funktioniert sehr gut.  Ich werde mir aber auch eine aktualisierte Version dieses Snippets ansehen.

      1. Danke für die Antwort Kevin.
         
        Wie du bereits erwähnt hast, benötigt es ein Update. Es verwendet jQuery 1.2.6, das veraltet ist, und ich bin mir nicht ganz sicher, ob es für WordPress optimiert und sicherheitsrelevant ist. Es wäre nett von dir, wenn du ein Update dafür veröffentlichen könntest.  

        Prost

        1. Hallo Zeb,
          Ich werde bald ein Update posten, aber es verwendet kein JQuery, also sollte das kein Problem sein.

Kommentar hinzufügen

Wir freuen uns, dass Sie einen Kommentar hinterlassen haben. Bitte beachten Sie, dass alle Kommentare gemäß unserer Datenschutzrichtlinie moderiert werden und alle Links nofollow sind. Verwenden Sie KEINE Schlüsselwörter im Namensfeld. Lassen Sie uns ein persönliches und bedeutungsvolles Gespräch führen.

WordPress Launch Checkliste

Die ultimative Checkliste für den Start von WordPress

Wir haben alle wichtigen Checklistenpunkte für den Start Ihrer nächsten WordPress-Website in einem praktischen E-Book zusammengefasst.
Ja, senden Sie mir das kostenlose E-Book!