1

某些 WordPress 插件会在“所有帖子”部分中将鼠标悬停在帖子名称上时添加指向小迷你菜单的链接。就是我所说的,例如从缓存中清除或克隆。

如何添加自己的?

4

3 回答 3

4

你使用add_filter钩子

例如,如果您想要一个链接来搜索谷歌的页面标题。

将此添加到您的functions.php

function search_google($actions, $page_object)
{
   $actions['google_link'] = '<a href="http://google.com/search?q=' . $page_object->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';

   return $actions;
}

add_filter('page_row_actions', 'search_google', 10, 2);

对于自定义帖子类型

add_filter('page_row_actions', 'search_google', 10, 2);
function search_google($actions, $post)
{
    if ($post->post_type =="YOUR_POST_TYPE"){
   $actions['google_link'] = '<a href="http://google.com/search?q=' . $page_object->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';

   return $actions;
    }
}

更多示例可以在这里找到

于 2013-08-14T02:22:51.463 回答
2

旧版本不再工作了。

现在使用这个:

add_filter('post_row_actions', 'search_google', 10, 2);
function search_google($actions, $post) {
    $actions['google_link'] = '<a href="http://google.com/search?q=' . $post->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';
    return $actions;
}

对于自定义帖子类型:

add_filter('post_row_actions', 'search_google', 10, 2);
function search_google($actions, $post) {
    if ($post->post_type =="YOUR_POST_TYPE"){
        $actions['google_link'] = '<a href="http://google.com/search?q=' . $post->post_title . '" class="google_link">' . __('Search Google for Page Title') . '</a>';
        return $actions;
    }
}
于 2018-07-04T10:54:52.877 回答
0

在我的情况下,我想通过在新选项卡中打开来改变当前链接的行为,并添加我自己的特定于 Divi Builder 主题的edit链接。view我希望这适用于页面、帖子和所有自定义帖子类型。

因为我将此更改应用于页面和帖子,所以我必须同时执行 post_row_actionspage_row_actions add_filter操作。

这是添加到我的子主题functions.php文件中的代码。

/* Modify row actions */
/* Modify row actions */
/* Modify row actions */

// Open Edit in new
function edit_new_tab( $actions, $page_object ) {
    $actions['edit'] = '<a href="/wp-admin/post.php?post=' . $page_object->ID . '&action=edit" target="_blank">' . __( 'Edit' ) . '</a>';

    return $actions;
}
add_filter( 'post_row_actions', 'edit_new_tab', 10, 2 );
add_filter( 'page_row_actions', 'edit_new_tab', 10, 2 );

// Open View in new
function view_new_tab( $actions, $page_object ) {
    $actions['view'] = '<a href="' . get_permalink() . '" target="_blank">' . __( 'View' ) . '</a>';

    return $actions;
}
add_filter( 'post_row_actions', 'view_new_tab', 10, 2 );
add_filter( 'page_row_actions', 'view_new_tab', 10, 2 );

// Divi Builder in new
function add_divi_link( $actions, $page_object ) {
    $actions['add_divi_link'] = '<a href="' . get_permalink() . '?et_fb=1&PageSpeed=off" target="_blank">' . __( 'Divi Builder' ) . '</a>';

    return $actions;
}
add_filter( 'post_row_actions', 'add_divi_link', 10, 2 );
add_filter( 'page_row_actions', 'add_divi_link', 10, 2 );

在此代码中,viewin$actions['view']匹配内置行类型。因此,行类型view会被相应的代码覆盖。这也适用于edit. 要查看行类型以及它们在您的实例中的显示方式,您可以检查页面的源代码并注意<span>要修改的链接周围的内容。的类<span>将是您将在 中使用的名称$actions['span_class_goes_here']。因此,$actions['edit']将确定编辑链接将被修改。

如果$actions['add_divi_link'],add_divi_link在我的场景中不存在,因此它将作为新的行操作添加。

于 2019-08-25T18:56:08.767 回答