Buat gelung diperibadikan untuk Siaran Komen Saya

王林
Lepaskan: 2023-09-02 18:34:01
asal
1179 orang telah melayarinya

Kadangkala, pembangun WordPress mungkin memerlukan gelung tersuai yang tidak boleh dijana menggunakan gelung standard (seperti kategori, pengarang, indeks, tarikh, arkib, taksonomi, dll.). Salah satunya ialah "Siaran yang saya ulas” >". Dalam tapak Soal Jawab ia bermaksud "soalan yang saya jawab", jadi ramai pembangun mungkin memerlukannya. Berdasarkan tutorial ini, kita boleh membuat satu lagi gelung tersuai. Mari buat bahagian ini.


Langkah 1

Pergi ke folder tema anda dan buat myanswers.php fail, kemudian salin dan tampal kod berikut ke dalamnya:

<?php /* Template Name: myanswers */ ?>
<?php
get_header(); ?>
<?php
get_template_part( 'loop', 'myanswers' );	 
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Salin selepas log masuk

Kami baru sahaja mencipta fail templat yang dipanggil myanswers. Ia akan digunakan untuk memaparkan gelung tersuai kami.


Langkah 2

Kekal dalam folder tema anda dan buat fail kedua yang dipanggil loop-myanswers.php. Dan tampal kod berikut ke dalam fail:

<?php
if($wp_query->query_vars['paged']==0){$wp_query->query_vars['paged']=1;}
$querystr = "
    SELECT $wpdb->posts.* 
    FROM $wpdb->posts  inner join $wpdb->comments on $wpdb->posts.ID=$wpdb->comments.comment_post_ID 
    WHERE $wpdb->posts.post_status='publish' and $wpdb->comments.user_id=".wp_get_current_user()->ID."
    GROUP BY $wpdb->posts.ID
    ORDER BY $wpdb->posts.post_date DESC  ";

$lim_per_page=" limit ".($wp_query->query_vars["posts_per_page"]*($wp_query->query_vars['paged']-1)).",".$wp_query->query_vars["posts_per_page"];

$query_for_count = $wpdb->get_results($querystr, OBJECT);
$wp_query->max_num_pages=ceil($wpdb->num_rows/$wp_query->query_vars["posts_per_page"]);
$querystr=$querystr.$lim_per_page;
$pageposts = $wpdb->get_results($querystr, OBJECT);
 ?>

<?php if ($pageposts): ?>
 <?php global $post; 
 ?>
 
 <?php foreach ($pageposts as $post): ?>
 <?php setup_postdata($post); ?>
 
<?php
/// THIS PART IS LOOP FROM TWENTYTEN, YOU CAN CHANGE IT HOWEVER YOU WANT BEGIN
?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), 
the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

			<div class="entry-meta">
				<?php twentyten_posted_on(); ?>
			</div><!-- .entry-meta -->

	<?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
			<div class="entry-summary">
				<?php the_excerpt(); ?>
			</div><!-- .entry-summary -->
	<?php else : ?>
			<div class="entry-content">
				<?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
				<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
			</div><!-- .entry-content -->
	<?php endif; ?>

			<div class="entry-utility">
				<?php if ( count( get_the_category() ) ) : ?>
					<span class="cat-links">
						<?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'twentyten' ), 'entry-utility-prep entry-utility-prep-cat-links', get_the_category_list( ', ' ) ); ?>
					</span>
					<span class="meta-sep">|</span>
				<?php endif; ?>
				<?php
					$tags_list = get_the_tag_list( '', ', ' );
					if ( $tags_list ):
				?>
					<span class="tag-links">
						<?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'twentyten' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list ); ?>
					</span>
					<span class="meta-sep">|</span>
				<?php endif; ?>
				<span class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'twentyten' ), __( '1 Comment', 'twentyten' ), __( '% Comments', 'twentyten' ) ); ?></span>
				<?php edit_post_link( __( 'Edit', 'twentyten' ), '<span class="meta-sep">|</span> <span class="edit-link">', '</span>' ); ?>
			</div><!-- .entry-utility -->
		</div><!-- #post-## -->

 <?php endforeach; 
/// THIS PART IS LOOP FROM TWENTYTEN, YOU CAN CHANGE IT HOWEVER YOU WANT  END
?>
 <?php else : ?>
    <h2 class="center">Not Found</h2>
    <p class="center">Sorry, but you are looking for something that isn't here.</p>
    <?php include (TEMPLATEPATH . "/search.php"); ?>
 <?php endif; ?>
 
 <?php
echo  $wp_query->max_num_pages;
 if (  $wp_query->max_num_pages > 1 ) : ?>
				<div id="nav-below" class="navigation">
					<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Previous', 'twentyten' ) ); ?></div>
					<div class="nav-next"><?php previous_posts_link( __( 'Next<span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
				</div><!-- #nav-below -->
<?php endif; ?>
Salin selepas log masuk

Fail ini digunakan untuk menjana gelung tersuai kami dalam fail templat.


Langkah 3

Buka fail fungsi tema tema anda (functions.php) dan tambahkan fungsi dan penapis ini pada fail:

add_filter('query_vars', 'parameter_queryvars' );
function parameter_queryvars( $qvars )
{
/* Plugin Name: Parameter
Plugin URI: https://webopius.com/
Description: A plugin to allow parameters to be passed in the URL and recognized by WordPress
Author: Adam Boyse
Version: 1.0
Author URI: http://www.webopius.com/
*/
$qvars[] = 'paged';
return $qvars;
}
Salin selepas log masuk

Pasangan fungsi dan penapis ini digunakan untuk mendapatkan ID halaman yang diperlukan untuk membina penomboran dalam tapak berstruktur pautan kekal.


Langkah 4

Akhir sekali, pergi ke papan pemuka anda, buat halaman baharu daripada Halaman -> Tambah halaman baharu dan namakannya "jawapan saya", secara lalainya slugnya ialah myanswers. Pilih templat untuk halaman ini sebelum diterbitkan. Dalam widget templat, anda akan melihat kotak kombo yang mengandungi pilihan myanswers. Pilihnya.

Buat gelung diperibadikan untuk Siaran Komen Saya

Selepas memilih pilihan myanswers, klik butang Terbitkan.


Selesai!

Anda kini boleh menggunakan url tapak anda.com/myanswers sebagai halaman yang memaparkan gelung "Siaran yang anda ulas". Sudah tentu, bukan sahaja anda, setiap pengguna log masuk boleh melihat mereka.

Atas ialah kandungan terperinci Buat gelung diperibadikan untuk Siaran Komen Saya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!