¿Qué puedo ajustar sobre la calidad de las entradas?

Nelio Content analiza la calidad de tus entradas según diferentes criterios:

Información sobre la calidad de la entrada
Información sobre la calidad de la entrada.

Este análisis se realiza por JavaScript y, a través de unas pocas líneas de código, puede configurarse totalmente para adaptarlo a tus necesidades.

Calidad de una entrada

En función del estado en que estén cada uno de los criterios individuales que se incluyen en el análisis de calidad, la calidad que Nelio Content asigna a tu entrada puede ser:

  • Pobre, si hay criterios que están mal o son mejorables.
  • Mejorable, si la mayoría de criterios están bien pero queda alguno que esté mal o hay varios mejorables.
  • Buena, si casi todos los criterios están bien salvo alguno que es mejorable.
  • Perfecta, si todos los criterios están bien.

Como ves, la única forma de conseguir una entrada perfecta es tener bien todos los criterios. Si ese no es el caso, puedes configurar cómo Nelio Content decide si una entrada es pobre, mejorable o buena indicando cuántos criterios puede haber en cada estado. Por ejemplo, puedes hacer que 3 criterios malos (y todos los demás buenos) sean una entrada pobre, pero que 3 criterios mejorables sean una buena entrada.

Para realizar dicha personalización, debes usar la función updatePostQualitySettings:

NelioContent.editPost.updatePostQualitySettings( options );

con los siguientes parámetros:

  • allowedBads: te permite indicar cuántos criterios malos son «aceptables». Por defecto, solo permite 1, con lo que dos o más criterios malos dan como resultado una entrada pobre.
  • unacceptableImprovables: Si la combinación de criterios malos y mejroables es mayor o igual que este número, la entrada seguirá siendo pobre. Por defecto, el valor es 2.
  • allowedImprovables: Suponiendo que todos los criterios son buenos o mejorables, este ajuste te permite decidir si la entrada debe darse por buena o sigue siendo mejorable. El valor por defecto es 4.

Aquí tienes un ejemplo de cómo llamar a esta función:

NelioContent.editPost.updatePostQualitySettings( {
  allowedBads: 1,
  allowedImprovables: 2,
  unnacceptableImprovables: 4,
} );

Si lo que quieres es personalizar los criterios de calidad de forma individual, a continuación te contamos cómo.

Cómo es un criterio de calidad internamente

Un criterio en Nelio Content es un objeto JavaScript con los siguientes atributos:

  • icon: un string con un icono de Dashicons.
  • interval: un número opcional que especifica la cantidad mínima de milisegundos que deben pasar entre una comprobación de este criterio y la siguiente.
  • settings: un objeto opcional con los atributos por defecto que determinan el funcionamiento de este criterio, ofreciendo así un mecanismo para modificarlo y adaptarlo a tus necesidades.
  • attributes: una función JavaScript que recibe como parámetro un objeto select para acceder a los almacenes Redux de WordPress. Esta función debe devolver un objeto con los atributos necesarios para determinar si ese criterio se cumple o no.
  • validate: una función JavaScript que recibe como primer parámetro los atributos que se han calculado en la función anterior y como segundo parámetro la configuración del criterio (los atributos de settings). El resultado debe ser un objeto con dos atributos:
    • status: un string cuyo valor debe ser good, improvable o bad. En función del valor, el criterio se pintará en verde, naranja o rojo.
    • text: el texto que debe acompañar al criterio.

Para añadir un nuevo criterio, hay que usar la función registerQualityCheck, indicando un nombre único para dicho criterio y el objeto que acabamos de describir. Para quitar un criterio, tenemos la función deregisterQualityCheck, la cual necesita únicamente su nombre:

NelioContent.editPost.registerQualityCheck( name, definition );
NelioContent.editPost.deregisterQualityCheck( name );

Ejemplo

Uno de los criterios por defecto que incluye Nelio Content es la longitud del contenido de tus entradas: según cuántas palabras hayas escrito, Nelio Content te dirá si son suficientes o hay que escribir más. Por defecto, si has escrito menos de 700 palabras te da un error, si has escrito entre 700 y 1000 te dice que es mejorable, y si has escrito más de 1000 te dice que está todo bien.

Pues bien, así es cómo está definido este criterio en Nelio Content:

registerQualityCheck( 'nelio-content/content-length', {
  icon: 'edit',
  interval: 2000,
  settings: {
    improvableThreshold: 700,
    goodThreshold: 1000,
  },
  attributes: ( select ) => {
    const { getContent } = select( 'nelio-content/edit-post' );
    return {
      content: getContent(),
    };
  },
  validate: ( { content }, { improvableThreshold, goodThreshold } ) => {
    const wordCount = countWords( content );
    if ( wordCount < improvableThreshold ) {
      return {
        status: 'bad',
        text: _x( 'Write a longer copy', 'user', 'nelio-content' ),
      };
    }
    if ( wordCount < goodThreshold ) {
      return {
        status: 'improvable',
        text: _x( 'Write a longer copy', 'user', 'nelio-content' ),
      };
    }
    return {
      status: 'good',
      text: _x( 'Copy length looks good', 'text', 'nelio-content' ),
    };
  },
} )

En otras palabras, esto es lo que estamos definiendo:

  • El criterio se llama nelio-content/content-length.
  • El icono es edit.
  • La comprobación se realiza, como mucho, cada 2 segundos.
  • Este criterio define dos atributos para configurar su funcionamiento:
    • improvableThreshold: el número de palabras mínimo para que el criterio pase de bad a improvable.
    • goodThreshold: el número de palabras mínimo para que el criterio se considere good.
  • La función attributes obtiene el contenido de la entrada que estamos escribiendo.
  • La función validate cuenta las palabras del contenido y, usando los dos parámetros de configuración que acabamos de ver, determina el valor del atributo actual. Por ejemplo, si hay menos de improvableThreshold palabras, el resultado que da es bad y nos dice que debemos «escribir una entrada más larga».

Criterios por defecto de Nelio Content

Estos son los principales criterios por defecto que incluye Nelio Content junto a sus atributos de personalización:

  • nelio-content/author: comprueba que el autor de la entrada no sea un administrador del sitio.
    Configuración: un atributo boolean llamado useBadStatus que indica si este criterio debe mostrarse como bad o como improvable cuando no se cumple.
  • nelio-content/content-images: comprueba que la entrada incluya alguna imagen en el contenido.
    Configuración: los atributos improvableThreshold y goodThreshold.
  • nelio-content/content-length: comprueba que la longitud de la entrada tenga una longitud mínima.
    Configuración: los atributos improvableThreshold y goodThreshold.
  • nelio-content/editorial-tasks: comprueba que no haya tareas editoriales pendientes de completarse.
    Configuración: el atributo useBadStatus.
  • nelio-content/excerpt: comprueba que la entrada tenga un resumen asociado.
    Configuración: el atributo useBadStatus.
  • nelio-content/external-links: comprueba que la entrada incluya una cierta cantidad de enlaces hacia fuentes externas.
    Configuración: los atributos improvableThreshold y goodThreshold.
  • nelio-content/internal-links: comprueba que la entrada incluya una cierta cantidad de enlaces hacia la propia web.
    Configuración: los atributos improvableThreshold y goodThreshold.
  • nelio-content/featured-image: comprueba que la entrada tenga una imagen destacada.
    Configuración: el atributo useBadStatus.
  • nelio-content/tags: comprueba que la entrada esté etiquetada con una o más etiquetas.
    Configuración: el atributo useBadStatus.

Cómo personalizar los criterios que usa Nelio Content

Para personalizar el análisis de calidad de Nelio Content tienes cuatro opciones:

  • Modificar el análisis global de calidad cambiando el número de criterios que pueden estar en un estado determinado usando la función updatePostQualitySettings.
  • Añadir nuevos criterios usando la función registerQualityCheck.
  • Quitar criterios usando la función deregisterQualityCheck.
  • Modificar la configuración de un criterio existente usando la función updateQualityCheckSettings.

Simplemente, añade el siguiente snippet de código en tu web (tal y como te explicamos aquí) con las personalizaciones concretas que quieras:

function nc_customize_criteria() {
  $script = <<<JS
    // Personalizaciones aquí.
JS;
  wp_add_inline_script( 'nelio-content-edit-post', $script );
}
add_filter( 'admin_enqueue_scripts', 'nc_customize_criteria' );

Por ejemplo, imagina que queremos bajar los umbrales de longitud del contenido de una entrada y que queremos eliminar la comprobación de que haya o no imágenes en nuestro contenido. Esto lo podemos lograr de la siguiente forma:

function nc_customize_criteria() {
  $script = <<<JS
    NelioContent.editPost.updateQualityCheckSettings(
      'nelio-content/content-length',
      { improvableThreshold: 250, goodThreshold: 500 }
    );
    NelioContent.editPost.deregisterQualityCheck(
      'nelio-content/content-images'
    );
JS;
  wp_add_inline_script( 'nelio-content-edit-post', $script );
}
add_filter( 'admin_enqueue_scripts', 'nc_customize_criteria' );