web-dev-qa-db-fra.com

Changer "Entrez le titre ici" dans le format du message

Je me demande s'il est possible de changer le texte "Entrez le titre ici" en fonction du format de message que vous avez sélectionné? Par exemple: Si vous sélectionnez le format de publication Devis , votre texte sera "Entrer devis de l'auteur". Est-ce possible?

3
Daniel

Vous devez faire ce qui suit.

jQuery(document).ready(function( $ ) {

    $('input.post-format').click(function(){

    $('#title-Prompt-text').val( $(this).next('label').text());

    })

});

Cela remplacera le titre par le format de publication sélectionné.

Enregistrez ce qui précède dans un fichier appelé custom-post-title.js et vous devrez placer ce fichier dans votre dossier de thèmes. Soit dans la racine ou dans un dossier nommé /js/ - mais notez simplement que si vous le placez dans un sous-dossier, assurez-vous de refléter cela dans le prochain extrait que je vous transmettrai.

Ensuite, dans votre fichier de thème functions.php, vous devez mettre votre script en file d'attente afin de l'utiliser dans la zone d'administration. Dans ce cas, nous le mettrons en file d'attente dans le post/page edit écrans uniquement (afin de ne pas charger inutilement ailleurs et créer des frais généraux.

function custom_post_title($hook) {
    if( 'edit.php' != $hook )
        return;
    wp_enqueue_script( 'custom_post_title', get_bloginfo('template_directory') . '/custom-post-title.js', __FILE__) );
}
add_action( 'admin_enqueue_scripts', 'custom_post_title' );

Utiliser le filtre admin_enqueue_scripts signifie que nous n'injectons notre fichier Javascript que sur le backend (zone d'administration) et non sur le front-end, après tout ce qui est inutile pour vos utilisateurs.

Si vous souhaitez ajouter un peu de personnalisation supplémentaire et modifier le titre du message par défaut, utilisez (également dans votre fichier functions.php);

function custom_title( $title ){

    $screen = get_current_screen();

    if ( 'post' == $screen->post_type ) {

    $title = 'Choose your post format';

    }

    return $title;

}

add_filter( 'enter_title_here', 'custom_title' );

Ceci est quelque chose de similaire à ce que Rutwick a posté ci-dessus précédemment; bien que cela ne réponde pas à votre question immédiate, cela étend le niveau de personnalisation afin que vous puissiez avoir,

  • Un titre de publication par défaut en entrant dans l'écran d'édition
  • Le titre de l'article mis à jour de manière dynamique lors de la sélection du format de l'article.

Bonne chance!

Remarques:

J'ai apporté une mise à jour importante à jQuery, en la modifiant;

$ ('# title-Prompt-text'). text ($ (this) .val ());

En faveur de,

$ ('# title-Prompt-text'). val ($ (this) .next ('label'). text ());

Le premier récupérait sa propriété dans l'attribut "value" du champ de saisie et bien que cela soit parfaitement correct dans la plupart des cas, WP attribue au "standard" post_format un value=0 au lieu de value=Standard - pour tous les autres post_formats la valeur est égale à celle de son nom.

La raison en est que WP renvoie false lorsque, par exemple, vous utilisez la fonction API get_post_format(); c’est ainsi qu’il décide de déterminer sa publication standard par défaut. Ce qui est un peu ridicule, alors le dernier ajustement s’occupe de cela en récupérant la valeur du input champs adjacent à l’élément <label> qui contient le nom de notre format de publication nécessaire.

4
userabuser

Allez pour jQuery! Vous pouvez le faire via php, mais uniquement lorsque vous modifiez un message pour lequel vous avez déjà défini le format du message. Mais pour 'Ajouter nouveau', vous ne pouvez pas, car le format de publication n'est pas défini.

0
Rutwick Gangurde