【发布时间】:2013-01-25 12:54:09
【问题描述】:
我正在尝试找出我可以使用什么动作挂钩/过滤器在管理员“edit.php”页面上插入内容(我想在“帖子”表上方放置一些链接)?我找到了“edit_form_after_title”和“edit_form_after_editor”(它们完全符合我的要求,但它们适用于posts.php,而不是edit.php)。
【问题讨论】:
标签: wordpress
我正在尝试找出我可以使用什么动作挂钩/过滤器在管理员“edit.php”页面上插入内容(我想在“帖子”表上方放置一些链接)?我找到了“edit_form_after_title”和“edit_form_after_editor”(它们完全符合我的要求,但它们适用于posts.php,而不是edit.php)。
【问题讨论】:
标签: wordpress
借助这个答案:How do you create a custom edit.php / edit pages page
我想出了这个:
<?php
# Called only in /wp-admin/edit.php pages
add_action( 'load-edit.php', function() {
add_filter( 'views_edit-talk', 'talk_tabs' ); // talk is my custom post type
});
# echo the tabs
function talk_tabs() {
echo '
<h2 class="nav-tab-wrapper">
<a class="nav-tab" href="admin.php?page=guests">Profiles</a>
<a class="nav-tab nav-tab-active" href="edit.php?post_type=talk">Talks</a>
<a class="nav-tab" href="edit.php?post_type=offer">Offers</a>
</h2>
';
}
?>
它看起来像这样:
【讨论】:
talk_tabs 中回显的任何内容替换了状态导航。我能够保持状态导航原样并通过回显附加文本在其上方添加文本,然后返回传递给过滤器的内容以开始 - 满足 OP 的初始请求。这是执行此操作的代码:function talk_tabs ($pre_filter_content) { echo '<p>Some additional text at the top of the page</p>'; return $pre_filter_content; }
如果你只是想添加到帖子标题链接,你可以这样做
if (is_admin()) {
add_filter('the_title', function($title) {
return $before_title . $title . $after_title;
});
}
但是,听起来您不想在标题链接中添加文本。
要在标题之后和操作链接之前添加 html,您可以这样做
if (is_admin()) {
add_filter('post_row_actions', function($args) {
// echo your custom content here
return $args; // and dont forget to return the actions
});
}
还有page_row_actions 用于页面编辑屏幕(post_row_actions 仅用于帖子)
至于在标题之前添加内容,我没有看到一个钩子/过滤器来做到这一点。如果您想自己寻找,请参阅wp-admin/class-wp-posts-list-table.php 第 463 行 function single_row。
【讨论】:
// echo your custom content here - 这会在列表中的每一行/帖子中回显文本。我认为这不是 OP 所要求的。