WordPress developer at work

Będąc w określonej kategorii chcemy wyświetlić wszystkie wpisy należące do niej.
Więc jedziemy – edytujemy/tworzymy plik category.php, do szablonu dodajemy następujący kod:

<ul>
<?php

$catID = get_query_var('cat');
$catName = strtolower(get_cat_name($catID));
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}

$myquery = new WP_Query(array(
'post_type' => 'products',
'category_name' => $catName)
);

while ( $myquery->have_posts() ) : $myquery->the_post();

$img_id = get_post_meta($post->ID,'main_image',true);
$img_url = wp_get_attachment_url($img_id);

?>

<li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

W większości przypadków automatyczne linkowanie dodawanych do WordPressa zdjęć jest upierdliwe.
Aby wymusić ignorowanie dodawanie znacznika <a href do dodawanych z poziomu wpisu lub strony załączników, robimy małą modyfikację.

W functions.php dodajemy małą funkcję:


function maniek_imagelink_setup() {
$image_set = get_option( 'image_default_link_type' );


if ($image_set !== 'none') {
update_option('image_default_link_type', 'none');
}
}
add_action('admin_init', 'maniek_imagelink_setup', 10);

1. phpMyAdmin
2. robimy backup
3. aby dodać własne pole do wszystkich wpisów i stron, robimy zapytanie:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'OwnCustomField'
AS meta_key 'myvalue AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'MonCustomField');

4. aby dodać własne pole tylko do wpisów:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'MyCustomField'
AS meta_key 'myvalue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'MonCustomField')
`` AND post_type = 'post';

5. aby dodać własne pole tylko do stron:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'MyCustomField'
AS meta_key 'myvalue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'MonCustomField')
AND `post_type` = 'page';

thx 2 thecustomizewindows.com

WordPress developer at work

w functions.php dodajemy:

function get_content_link( $content = false, $echo = false )
{
if ( $content === false )
$content = get_the_content();

$content = preg_match_all( '/hrefs*=s*["']([^"']+)/', $content, $links );
$content = $links[1][0];

if ( empty($content) ) {
$content = false;
}

return $content;
}

używamy w templacie jako np.:
<h2><a href="<?php echo get_content_link( get_the_content() ); ?>"><?php the_title(); ?></a></h2>
<p><?php the_excerpt(); ?></p>
<a href="<?php the_permalink(); ?>">Comment »</a>

dzięki http://wp-snippets.com