it-swarm.com.de

Standardinhalt für einen Beitrag in einer Kategorie?

Dies ist eine allgemeine Funktion, die allen Posts Standardtext hinzufügt:

add_filter( 'default_content', 'my_editor_content' );
function my_editor_content( $content ) {
    $content = "default content goes here....";
    return $content;
}

Wie würde dies geändert, um den Standardinhalt nur einem Beitrag in einer Kategorie hinzuzufügen?

4/10/11 Keine exakte Antwort, aber ein paar Auswahlmöglichkeiten in meiner eigenen Antwort

4
markratledge

Eine Möglichkeit ist diese Frage/Antwort von Jan Fabry, der beim Erstellen des neuen Beitrags nach dem Standardinhalt fragt: Kategoriewahl erzwingen, bevor ein neuer Beitrag erstellt wird?

Am Ende habe ich einen Quicktag verwendet, um den Inhalt einfach in einen Post zu bekommen, und da der Standardinhalt zufällig HTML ist, funktioniert er vorerst so gut wie möglich. Aber in Zukunft wird es eine Möglichkeit geben, Standardinhalte in einen Beitrag zu integrieren, wenn dieser Beitrag in dieser Kategorie gespeichert wird. Das ist gut.

Quicktags-Funktion für functions.php:

//Custom Quicktags Function

function my_quicktags() {
    wp_enqueue_script('custom_quicktags',
    get_bloginfo('template_directory').'/custom-quicktags.js', array('quicktags'));
}
add_action('admin_print_scripts', 'my_quicktags');

Beispielcode für Quicktags für custom-quicktags.js, der sich im Themenordner befindet:

edButtons[edButtons.length] =
new edButton('newbutton1'
,'TagButtonName'
,'html, like <div>'
,'and more </div>'
,''
);
3
markratledge

Sie können $ post globalisieren und prüfen, ob es die gewünschte Kategorie hat:

add_filter( 'default_content', 'my_editor_content' );
function my_editor_content( $content ) {
    global $post;
    $the_one_category_id= '12'; //the category you want this to work on id
    $args= array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'ids');
    $cats = wp_get_object_terms($post->ID, 'category',$args);
    if (in_array($the_one_category_id,$cats)){
        $content = "default content goes here....";
    }
        return $content;
    }
0
Bainternet