我有一个显示每个帖子的网站,每个帖子都有一个说明,以解释该帖子。
如何获得我的类别页面(总结所有帖子的页面),以仅显示帖子的小摘要,而没有其他内容。目前我正在使用
the_excerpt();
但这会将文字限制为55个字,但是其中一些字会小于该字,因此其他文字会显示在我不想要的类别中。
例如,这是一个示例帖子:
http://thestudentbubble.com/hidden-gems/hidden-gems-restaurants/ganges-indian/
正如您在下面看到的那样,说明是其他信息,我不希望其显示在类别页面上。
这是类别页面-http://thestudentbubble.com/hidden-gems/hidden-gems-restaurants/
但我不想出现的其他信息仍然出现。
我要显示的文字在:
<div class = "bioText">
如何仅使div中的文本显示在类别页面中?
感谢您的帮助!
这是类别循环:
<div class="comment">
<?php
$cats = get_the_category();
$category_id = $cats[0]->cat_ID;
$args = array( 'posts_per_page' => 1, 'category' => $category_id);
$lastposts = get_posts( $args );
foreach ( $lastposts as $post ) :
$this_post_ID = get_the_ID();
$this_post_preview = get_post_meta( $this_post_ID, 'post_preview', true );
echo $this_post_preview;
//the_excerpt();
//the_content();
wp_reset_postdata();
endforeach;
?>
</div>
最佳答案
好的,首先要做的是在每个帖子的管理面板中创建一个自定义文本区域。它将出现在编辑器下。让我们创建一个包含代码的.php文件,将其命名为post_preview_field.php,并将其放置在主题根文件夹中。之后,我们将需要在我们的functions.php文件中引用它。只需添加以下行即可完成:
require_once(get_template_directory().'/post_preview_field.php');
让我们打开post_preview_field.php文件并编写代码。
<?php
add_action( 'add_meta_boxes', 'post_preview_metabox' );
add_action( 'save_post', 'post_preview_save_postdata' );
function post_preview_metabox() {
$screens = array( 'post' );
foreach ($screens as $screen) {
add_meta_box(
'post_preview_metabox_id',
__( 'Post Preview', 'post_preview_textdomain'),
'post_preview_inner_boxes',
$screen
);
}
}
function post_preview_inner_boxes( $post ) {
wp_nonce_field( plugin_basename( __FILE__ ), 'post_preview_noncename' );
$post_preview_value = get_post_meta( $post->ID, 'post_preview', true );
echo '<label for="post_preview_new_field">';
_e("", 'post_preview_textdomain' );
?>
</label>
<textarea name="post_preview_new_field" id="post_preview_new_field" ><?php echo $post_preview_value; ?></textarea>
<?php }
function post_preview_save_postdata( $post_id ) {
if ( 'post' == $_POST['post_type'] ) {
if ( ! current_user_can( 'edit_page', $post_id ) )
return;
} else {}
if ( ! isset( $_POST['post_preview_noncename'] ) || ! wp_verify_nonce( $_POST['post_preview_noncename'], plugin_basename( __FILE__ ) ) )
return;
$post_ID = $_POST['post_ID'];
$post_preview = ( $_POST['post_preview_new_field'] );
add_post_meta($post_ID, 'post_preview', $post_preview, true) or
update_post_meta($post_ID, 'post_preview', $post_preview);
}
?>
开始了。我们刚刚创建了一个textarea字段,该字段出现在每个帖子的面板中,可以包含一些文本,每次保存\更新帖子时都会保存,并存储在帖子的元数据中。
现在,我们要做的就是在前端访问此值并回显它。我们该怎么做?
在循环中,我们首先将帖子ID分配给一个变量:
$this_post_ID = get_the_ID();
然后将我们存储的数据分配给另一个:
$this_post_preview = get_post_meta( $this_post_ID, 'post_preview', true );
而已。现在我们可以回显预览:
echo $this_post_preview;