如何通过复选框控制单个帖子字段中是否显示在前端/末端 - 从前端隐藏。例如。就像在这个模型中一样 - http://screencast.com/t/Q71rxUcxOrx
是否有插件或者您能指点我一篇文章吗?
答案 0 :(得分:0)
创建复选框的后元,并通过选中/取消选中,您可以隐藏/显示前端的帖子内容。
为此,你必须修改前端的代码,看是否选中了复选框,并根据它显示帖子内容。
答案 1 :(得分:0)
尝试以下代码(它是一个单独的插件) - 它隐藏在Frontpage上的整个帖子 - 随时修改它。
<?php
/**
* Plugin Name: Hide post on frontend
* Description: Allows define whether post should be displayed on frontend or not.
* Version: 1.0.0
* Author: Lukas Pawlik
* License: GPL2
*/
/**
* Adds new metabox.
*
* @return void Method does not return.
*/
function hpof_add_meta_box() {
add_meta_box(
'hpof_hide_post',
'Hide this post on frontend',
'hpof_add_meta_box_content',
null,
'side',
'high'
);
}
/**
* Outputs metabox contents.
*
* @param WP_Post $post
*
* @return void Method does not return.
*/
function hpof_add_meta_box_content( WP_Post $post ) {
$checked = (bool)get_post_meta( $post->ID, 'hpof_hide_post', true );
echo '<input type="checkbox" name="hpof_hide_post" ' .
( $checked ? 'checked' : '' ) . '/> Hide this post';
}
/**
* Handles post saving.
*
* @param int $post_id Post id.
*
* @return void Method does not return.
*/
function hpof_save_post( $post_id ) {
$value = (int)isset( $_POST['hpof_hide_post'] );
update_post_meta( $post_id, 'hpof_hide_post', $value );
}
/**
* Adds custom filtering.
*
* @param WP_Query $query
*
* @return void Method does not return.
*/
function hpof_pre_get_posts( WP_Query $query ) {
if ( is_home() ) {
/** @var $wpdb wpdb */
global $wpdb;
$results = $wpdb->get_col(
"SELECT post_id FROM {$wpdb->prefix}postmeta WHERE " .
"meta_key = 'hpof_hide_post' AND " .
"meta_value = 1"
);
$query->query_vars['post__not_in'] += $results;
}
}
add_action( 'add_meta_boxes', 'hpof_add_meta_box' );
add_action( 'save_post', 'hpof_save_post' );
add_action( 'pre_get_posts', 'hpof_pre_get_posts' );