Mostrando Mensajes publicados con sesión iniciada fuera a los usuarios?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/1017

  •  16-10-2019
  •  | 
  •  

Pregunta

Estamos trabajando en un plugin que cualquier usuario conectado tiene la capacidad de presentar un nuevo "paso" o el tipo de mensaje estándar con estado personalizado de "pitch". Una vez que el terreno de juego está en el sistema, otros usuarios registrados pueden votar en la idea, de voluntarios para participar, o comentario sobre la historia en curso.

Era simple para listar todos los mensajes publicados en una única vista mediante la consulta de la base de datos de mensajes con post_status != 'publish'. Me gustaría configurarlo para que tanto iniciado tu sesión y no talado en los visitantes pueden hacer clic a través del título y ver el mensaje en una sola vista también. el comportamiento por defecto de WordPress es devolver un 404 a menos que tenga permisos suficientes. Creo permisos visualización se manejan de la consulta objeto, y no veo una forma sencilla de desactívala.

Todas las ideas creativas? Gracias de antemano.

¿Fue útil?

Solución

contestado a mi propia pregunta en este caso. Pues resulta que, era bastante simple en WordPress 2.9.2. Básicamente, aplica un filtro a 'the_posts' lo que iría en otra consulta si el objeto estaba vacío. Debido a que estamos mirando hacia arriba mensajes que no han sido publicados, tenemos que usar nuestro propio SQL personalizado también. Tratando de utilizar el objeto WP_Query será, así, poner en un bucle recursivo sin fin.

Otros consejos

Si estás usando WP 3.0 o superior debe ser capaz de utilizar el método register_post_status () para registrar la nueva condición pública. Yo no lo veo en el códice aún, pero a continuación es lo que está documentado:

/**
 * Register a post type. Do not use before init.
 *
 * A simple function for creating or modifying a post status based on the
 * parameters given. The function will accept an array (second optional
 * parameter), along with a string for the post status name.
 *
 *
 * Optional $args contents:
 *
 * label - A descriptive name for the post status marked for translation. Defaults to $post_status.
 * public - Whether posts of this status should be shown in the admin UI. Defaults to true.
 * exclude_from_search - Whether to exclude posts with this post status from search results. Defaults to true.
 *
 * @package WordPress
 * @subpackage Post
 * @since 3.0.0
 * @uses $wp_post_statuses Inserts new post status object into the list
 *
 * @param string $post_status Name of the post status.
 * @param array|string $args See above description.
 */
function register_post_status($post_status, $args = array()) {....

En base a esto, sólo debe ser capaz de llamada:

function add_pitch_status() {
    register_post_status('pitch', array('public'=>true));
}
add_action('init', 'add_pitch_status');
Licenciado bajo: CC-BY-SA con atribución
scroll top